将旧的.NET代码拆分为设计器部分类

我正在使用一个较旧的.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,你会有这样的:

    /// <summary>
    /// Required designer variable.
    /// </summary>
    private Container components = null;

b)在Designer类中添加一个新的组件对象:

    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

c)除非你有一个特定的dispose方法,这是标准。如果你没有任何形式继承,我认为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 Form Designer生成的代码中的所有代码复制到新的Designer.cs类中。

e)你还应该复制你在设计器中使用的所有对象(标签,texboxes等)的所有成员变量。

这应该是所有。保存并编译。

请记住,部分类可以在N个文件之间拆分,但是所有的都必须共享SAME命名空间。

这是值得吗?
好吧,在我的情况下,我有一堆巨大的winforms吨的代码和控件。 VS2008抓取每次我切换/设计器。这使得代码视图更灵敏。我记得在等待响应代码之前等待3-5秒。现在需要1 …

更新:

执行步骤1到5并移动现有或添加新控件不会自动将任何内容移动到designer.cs类。
新的东西去了新的Designer类,但旧的东西仍然在那里,不幸的是。

您还必须关闭并重新打开该文件(在添加/创建部分类之后),以便VS在Designer中正确绘制;失败可能导致绘制空表单。

http://stackoverflow.com/questions/669540/split-old-net-code-into-designer-partial-class

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:将旧的.NET代码拆分为设计器部分类