我刚才所做的完全是手动的:
- 创建您的表单.Designer.cs
- 将其添加到 Visual Studio(右键单击,添加现有项)
- 将 partial 关键字添加到您现有的类中。
- 将命名空间与原始cs中的完全相同添加到yourform.designer.cs
- 在这个命名空间中,添加 class 定义(不要忘记包含 partial 关键字)。 不要在 Designer.cs 中向这个分部类添加继承和/或接口。
- 完成后,您就可以剪切和粘贴以下内容了:
a) 删除您在原始 Winform 中可能拥有的 components 对象。如果应用程序是 .NET 1.1,您将拥有如下内容:
/// <summary>
/// Required designer variable.
/// </summary>
private Container components = null;
b) 在 Designer 类中添加一个新的 components 对象:
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
c) 除非您有 特定 处置方法,否则这是标准。如果您没有任何形式的继承,我认为 base.Dispose 可以安全删除:
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose( bool disposing )
{
if ( disposing && ( components != null ) )
{
components.Dispose();
}
base.Dispose( disposing );
}
d) 将#region Windows 窗体设计器生成的代码中的所有代码复制到新的 Designer.cs 类。
e) 您还应该复制all所有对象(您在设计器中使用的标签、texbox 等)的成员变量。
这应该就是全部了。保存并编译。
请记住,一个部分类可以在 N 个文件中拆分,但所有文件都必须共享相同的命名空间。
值得吗?
好吧,就我而言,我有一堆 huge winforms,其中包含大量代码和控件。每次我从设计师切换到设计师时,VS2008 都会爬行。这使代码视图更具响应性。我记得在获得响应代码之前必须等待 3-5 秒。现在需要 1…
更新:
执行步骤 1 到 5 并移动现有控件或添加新控件不会自动将任何内容移动到 Designer.cs 类。
新的东西进入了新的 Designer 类,但不幸的是,旧的东西仍然保留在原来的位置。
您还必须关闭并重新打开文件(在您添加/创建部分类之后),以便 VS 在设计器中正确绘制;不这样做可能会导致绘制空表格。