我有一个TabControl,它的TabPages名为foo
,bar
,abd baz
。当用户更改为bar
选项卡时,我希望它使用bar.cs
类中的代码;当用户更改为baz
选项卡时,我要运行{ {1}}类,从某种意义上说,它类似于“多合一”形式,因为它具有多种不同的功能,但我不希望所有代码都在一个类中。
我该如何实现?这甚至是做这样事情的正确方法吗?
我有一个TabControl,它的TabPages名为foo
,bar
,abd baz
。当用户更改为bar
选项卡时,我希望它使用bar.cs
类中的代码;当用户更改为baz
选项卡时,我要运行{ {1}}类,从某种意义上说,它类似于“多合一”形式,因为它具有多种不同的功能,但我不希望所有代码都在一个类中。
我该如何实现?这甚至是做这样事情的正确方法吗?
如果您只是想分拆代码以使自己没有一个庞大的Form,那么一种标准方法是将每个选项卡页的内容分解为一个自定义用户控件(可重用的复合控件)。 / p>
也许我不理解这个问题,但是对我来说,您可以订阅SelectedIndexChanged
事件,实例化适当的类并运行代码,对我来说似乎很简单。
private void OnSelectedIndexChanged(object sender,EventArgs e)
{
switch (myTabControl.SelectedTab.Name)
{
case "foo":
{
var o = new foo();
o.RunCode();
break;
}
case "bar":
{
var o = new bar();
o.RunCode();
break;
}
case "baz":
{
var o = new baz();
o.RunCode();
break;
}
}
}