【问题标题】:Multiple classes in one form一种形式的多个类
【发布时间】:2011-07-13 15:08:02
【问题描述】:

我在表单中使用了TabControl,这让我感到好奇。现在我只有两个选项卡,我在主窗体的代码中存储与两个选项卡(按钮处理程序等)相关的过程,所以它看起来像这样:

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

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

【问题讨论】:

    标签: c# winforms oop coding-style


    【解决方案1】:

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

    每个 UserControl 都应该是一个独立的单元,它从主窗体中获取所需的任何数据并触发事件以告诉主窗体执行操作。

    【讨论】:

      【解决方案2】:

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

      如果你真的想要,你可以将类写在单独的文件中,这样你就可以将自己的逻辑保存在单独的文件中。

      如果您注意到 Form 由 Visual Studio 生成为 partial 类。
      这是因为设计代码是在单独的文件中生成的。
      您可以通过在其他文件中将类的其他部分声明为 partial 来自己执行此操作。

      更多关于partialthis link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-02
        • 2016-10-31
        • 2018-05-21
        相关资源
        最近更新 更多