C# 一种形式的多个类

C# 一种形式的多个类,c#,winforms,oop,coding-style,C#,Winforms,Oop,Coding Style,我在表单中使用了一个TabControl,这让我很好奇。现在,我只有两个选项卡,我在主窗体的代码中存储了与这两个选项卡(按钮处理程序,&c.)相关的过程,因此看起来如下所示: public partial class MainForm : Form { // ----------TAB1----------- tab1SearchButtonCLick() {...} tab1AddButtonCLick() {...} // ----------TAB2----

我在表单中使用了一个
TabControl
,这让我很好奇。现在,我只有两个选项卡,我在主窗体的代码中存储了与这两个选项卡(按钮处理程序,&c.)相关的过程,因此看起来如下所示:

public partial class MainForm : Form
{
    // ----------TAB1-----------
    tab1SearchButtonCLick() {...}
    tab1AddButtonCLick() {...}
    // ----------TAB2-----------
    tab2EditButtonCLick() {...}
    tab2SearchButtonCLick() {...}
    tab2ClearButtonCLick() {...}
}

现在代码很少,这不是问题,但将来可能会有问题。这是一种可以接受的方式吗?替代方案是什么?我相信我可以将选项卡放在它们自己的类中,但我不确定如何确切地做到这一点(每个选项卡中有很多控件,我必须将它们作为参数传递给构造函数)。

您应该将每个选项卡的内容移到单独的UserControl


每个UserControl都应该是一个自包含的单元,它从主窗体获取所需的任何数据,并触发事件以通知主窗体执行操作。

选项卡有事件是有原因的-选项卡引发事件并且不想处理它。
使用选项卡(或其他包含事件的对象)时,需要编写处理事件的代码

如果确实需要,可以在单独的文件中编写该类,以便在单独的文件中保留自己的逻辑

如果您注意到Visual studio将
表单
生成为
部分
类。
这是因为设计代码是在一个单独的文件中生成的。
您可以通过在其他文件中将类的其他部分声明为
partial
来实现这一点

更多关于