Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c中不同选项卡的不同类#_C# - Fatal编程技术网

C# c中不同选项卡的不同类#

C# c中不同选项卡的不同类#,c#,C#,我写了一些代码,然后决定我需要另一个选项卡,以给用户提供更多的选项。我的问题是,我放在第二个选项卡中的任何按钮或文本框都必须在以程序开头的主类中进行编码。有没有办法将不同的类与第二个选项卡相关联,这样我就可以在不同的类中分别保留每个选项卡的方法 请让我知道这是否可以做到 感谢您提供了一些选项: 为选项卡创建一个UserControl(在WinForms中有一些缺点,因为UserControl嵌套太深会导致性能低下)。这将完全隔离代码和包含的控件 在一个单独的类中实现UI控制器逻辑,并且只以代码隐

我写了一些代码,然后决定我需要另一个选项卡,以给用户提供更多的选项。我的问题是,我放在第二个选项卡中的任何按钮或文本框都必须在以程序开头的主类中进行编码。有没有办法将不同的类与第二个选项卡相关联,这样我就可以在不同的类中分别保留每个选项卡的方法

请让我知道这是否可以做到

感谢您提供了一些选项:

  • 为选项卡创建一个UserControl(在WinForms中有一些缺点,因为UserControl嵌套太深会导致性能低下)。这将完全隔离代码和包含的控件

  • 在一个单独的类中实现UI控制器逻辑,并且只以代码隐藏的形式编写非常浅的粘合代码。最后你会得到一堆难看的胶水,但这比让更复杂的UI逻辑膨胀表单更干净

  • 可以使用新选项卡控件的事件处理程序为表单代码隐藏创建其他分部类(在单独的文件中)。不过,这可能会有点难看,而且WinForms设计器并没有很好地支持这一点

  • 您可以在“代码隐藏”表单中创建代码区域,以便将每个选项卡后面的逻辑组合在一起。这稍微组织了复杂性,但实际上可能有点误导(代码折叠时看起来很短,但实际上是一个“上帝类”,尽管存在组织,但不能保证代码中没有引入区域之间的紧密耦合。它还需要一些规程来维护区域分组;开发人员可能会意外地将方法添加到错误的位置,从而创建c稍后再讨论


  • 您可以创建从TabPage/TabItem派生的自己的控件。这将允许您为选项卡创建单独的类


    或者您可以创建“部分”类,并可以将一个类拆分为多个文件。

    这是WPF还是WinForms应用程序?@VktorS:请不要使用代码跨度(
    像这样
    )要突出显示文本--它们应该只用于引用句子中的代码。例如,
    私有无效按钮3\u单击
    可以,但是
    按钮或文本框
    不应该在代码范围内。谢谢!VS没有用于TabPages的设计器,因此您必须使用小的变通方法。创建新的UserControl,放置所有控件并写入e此控件的代码。完成后,将此控件的基类从UserControl更改为TabPage。现在以编程方式将自定义TabPage添加到TabControl。可能会出现错误“xxx不包含AutoScaleMode的定义”。只需删除这行代码。如何更改基类?我真的不知道您在做什么