2009-11-18 62 views
1

Visual Studio创建类似下面的代码:自定义Winforms是否需要控制自动生成的设计器文件?

namespace MyCustomControls 
{ 
    partial class MyCustomControl 
    { 
     /// <summary> 
     /// Required designer variable. 
     /// </summary> 
     private System.ComponentModel.IContainer components = null; 

     /// <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); 
     } 

     #region Component Designer generated code 

     /// <summary> 
     /// Required method for Designer support - do not modify 
     /// the contents of this method with the code editor. 
     /// </summary> 
     private void InitializeComponent () 
     { 
      components = new System.ComponentModel.Container (); 
     } 

     #endregion 
    } 
} 

回答

3

定制的设计者文件是必不可少的,如果你使用的是设计师表面铺陈子控件等(漂亮,多任何在设计师)。如果你不是这样做(例如,你正在使用自定义绘画,或手动添加子控件),那么你通常可以非常安全地杀死这个文件。

在某些方面,这使得它更容易实现Dispose()

+0

谢谢Marc。你说过“在某些方面,这使得更容易实现Dispose()等。”你的意思是杀死该文件?我看到他们已经在那里处理方法,所以认为可能需要该文件来正确处理您的控制。 – 2009-11-18 23:04:47

0

严格地说,我不这么认为,但那么你将失去任何创建控件时,你会得到设计时间的好处,我的猜测是VS会继续尝试重新创建它们。

1

不,不需要从创建新的自定义控件的初始唾沫生成的代码。它没有任何功能,并且基本上可以从您的应用程序中注释掉。

但是,当你在设计器中对你的自定义控件做任何事情的时候,非常有用的代码将会被生成到设计器文件中,其中重要的。如创建任何附加控件,事件处理程序连接和基本初始化和布局。此代码无法删除。

+0

但它有一个dispose方法。你知道这是否需要或正确处置?我不会在我的控件上调用处置。我只是关闭表格。 – 2009-11-18 23:06:04

+0

关闭表单将调用Dispose。 **但**只处理该文件中的代码。 Dispose的基类定义将做其他重要的事情! – tster 2009-11-18 23:11:58

1

由于您使用CustomControl模板开始,因此您会获得这些文件,部分类设置和设计图面。

你也可以通过添加一个'New Class'来启动一个Control并添加你真正需要的东西。如果你不使用设计器(并且你通常不会使用CustomControl),那么它只会阻碍它。

相关问题