为表单创建局部类

Con*_*ght 4 vb.net visual-studio-2010 winforms

我想为表单创建一个局部类。我有很多事件,而且情况变得一团糟,所以我想将各个部分分解成自己的文件。

问题:当我创建表单的局部类时,请说:

Partial Public Class Form1

End Class
Run Code Online (Sandbox Code Playgroud)

Visual Studio决定此局部类需要其他形式。

问题:
1.如何为表单创建局部类?
2.如果不能这样做,如何将表单中的所有事件分解为不同的文件?

Han*_*ant 5

是的,确实如此。将控件放到该幻像窗体上后,您将获得在该源代码文件中生成的设计时代码(InitializeComponent)。这是.NET 1.x的兼容性行为,它不支持Partial关键字。它将破坏构建,现在有两个。小心单击可以避免这种情况,但是您知道它迟早会发生。

顺便说一句,其他事情也出错了,当您将事件处理程序从一个文件移动到另一个文件时,设计器将无法再跟踪它。并且会很容易让您添加另一个更棘手的错误源。

这只是效果不佳,放弃了依靠它来解决问题的希望。

通用诊断是,复杂的用户界面会生成复杂的代码。但是毫无疑问,那艘船已经航行了。更具结构性的解决方案是追求MVC模型,将数据与数据视图分开。您仍然会有很多事件处理程序,但是除了调用实际工作的类的方法外,它们不会做其他任何事情。当然,谁的源代码可以存在于另一个源代码文件中。典型的挂断是Windows窗体对此不提供任何内置支持,您必须手工制作它。与WPF中的MVVM模型相似。

东西可以很好地工作在隔离控制+代码到一个单独的用户控件。但是,您必须非常小心地执行此操作,而不希望添加一堆公开内部控件的属性和事件。