我正在研究一个较旧的.NET代码库,它将所有设计器代码都填充到与我的代码相同的代码文件中(预部分类).
是否有一种机制告诉Visual Studio 2008返回并将设计器代码重构为X.designer.cs分部类文件?
我刚刚完成的手动完全是:
创建yourform了.Designer.cs
将其添加到Visual Studio(右键单击,添加现有项目)
将partial关键字添加到现有类中.
将名称空间 与原始cs完全相同,添加到yourform .designer.cs
在此命名空间内,添加类定义(不要忘记包含partial关键字).不要在Designer.cs中向此部分类添加继承和/或接口.
完成此操作后,您就可以剪切并粘贴以下内容:
a)删除原始Winform中可能包含的组件对象.如果应用程序是.NET 1.1,您将得到以下内容:
////// Required designer variable. /// private Container components = null;
b)在Designer类中添加一个新的组件对象:
////// Required designer variable. /// private System.ComponentModel.IContainer components = null;
c)除非您有特定的处置方法,否则这是标准.如果你没有任何形式的继承,我认为base.Dispose可以安全删除:
////// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose( bool disposing ) { if ( disposing && ( components != null ) ) { components.Dispose(); } base.Dispose( disposing ); }
d)将#region Windows窗体设计器生成的代码中的所有代码 复制到新的Designer.cs类.
e)您还应该复制所有对象(您在设计器中使用的标签,texbox等)的所有成员变量.
这应该是关于它的全部.保存并编译.
值得吗?好吧,在我的情况下,我有一堆巨大的 winforms与大量的代码和控件.每次我从设计师切换到设计师时,VS2008都会爬行.这使代码视图更具响应性.我记得在有响应代码之前必须等待3-5秒.现在需要1 ...
执行步骤1到5并移动现有控件或添加新控件不会自动将任何内容移动到designer.cs类.新的东西进入了新的Designer类,但不幸的是旧的东西仍然存在.
您还必须关闭并重新打开文件(在添加/创建分部类之后),以便VS在Designer中正确绘制; 如果不这样做可能会导致绘制空表格.
如果有人还在寻找这样的自动化方法有一个宏观VS 这里将完成大部分的给你.
一个非常好的工具.