我正在开发一个较旧的 .NET 代码库,该代码库将所有设计器代码都填充到与我的代码相同的代码文件中(预部分类)。
是否有一种机制可以告诉 Visual Studio 2008 返回并将设计器代码重构为 X.designer.cs 部分类文件?
最佳答案
我刚刚所做的完全是手动的:
a) 删除您在原始 Winform 中可能拥有的组件对象。如果应用程序是 .NET 1.1,您将拥有如下内容:
/// <summary>
/// Required designer variable.
/// </summary>
private Container components = null;
b) 在 Designer 类中添加一个新的组件对象:
/// <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) 您还应该复制 全部 您在设计器中使用的所有对象(标签、texbox 等)的成员变量。
这应该就是全部了。保存并编译。
请记住,一个部分类可以在 N 个文件中拆分,但所有文件都必须共享相同的命名空间。
值得吗?
好吧,就我而言,我有一堆 巨大的带有大量代码和控件的winforms。每次我从设计师切换到设计师时,VS2008 都会爬行。这使代码 View 更具响应性。我记得在获得响应代码之前必须等待 3-5 秒。现在需要 1…
更新:
执行步骤 1 到 5 并移动现有控件或添加新控件不会自动将任何内容移动到 Designer.cs 类。
新的东西进入了新的 Designer 类,但不幸的是,旧的东西仍然保留在原来的位置。
您还必须关闭并重新打开文件(在添加/创建部分类之后),以便 VS 在设计器中正确绘制;不这样做可能会导致绘制空表格。
关于.net - 将旧的 .NET 代码拆分为设计器部分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/669540/