当前位置:  开发笔记 > 开发工具 > 正文

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

如何解决《将旧的.NET代码拆分为设计器的部分类》经验,为你挑选了2个好方法。

我正在研究一个较旧的.NET代码库,它将所有设计器代码都填充到与我的代码相同的代码文件中(预部分类).

是否有一种机制告诉Visual Studio 2008返回并将设计器代码重构为X.designer.cs分部类文件?



1> Martin Marco..:

我刚刚完成的手动完全是:

    创建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等)的所有成员变量.

这应该是关于它的全部.保存并编译.

请记住,可以在N个文件中分割部分类,但所有文件都必须共享SAME名称空间.

值得吗?好吧,在我的情况下,我有一堆巨大的 winforms与大量的代码和控件.每次我从设计师切换到设计师时,VS2008都会爬行.这使代码视图更具响应性.我记得在有响应代码之前必须等待3-5秒.现在需要1 ...


更新:

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

您还必须关闭并重新打开文件(在添加/创建分部类之后),以便VS在Designer中正确绘制; 如果不这样做可能会导致绘制空表格.



2> Haas..:

如果有人还在寻找这样的自动化方法有一个宏观VS 这里将完成大部分的给你.

一个非常好的工具.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有