如何基于TabControl中选定的标签使用特定的类?

我有一个TabControl,它的TabPages名为foobar,abd baz。当用户更改为bar选项卡时,我希望它使用bar.cs类中的代码;当用户更改为baz选项卡时,我要运行{ {1}}类,从某种意义上说,它类似于“多合一”形式,因为它具有多种不同的功能,但我不希望所有代码都在一个类中。

我该如何实现?这甚至是做这样事情的正确方法吗?

sajensenhanyya 回答:如何基于TabControl中选定的标签使用特定的类?

如果您只是想分拆代码以使自己没有一个庞大的Form,那么一种标准方法是将每个选项卡页的内容分解为一个自定义用户控件(可重用的复合控件)。 / p>

  1. 在Visual Studio中,将新项目添加到您的项目中,然后选择“用户控件”。
  2. 使用设计器添加所需的任何控件/逻辑/事件/属性。
  3. 构建您的项目。构建完成后,您应该会在VS工具箱中的顶部附近看到新的UserControl。
  4. 将控件拖到窗体中所需的TabPage上。将其Dock属性设置为Full,以便填充选项卡控件。
,

也许我不理解这个问题,但是对我来说,您可以订阅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;
        }

    }
}
本文链接:https://www.f2er.com/3113935.html

大家都在问