2009-11-18 63 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),那麼它只會阻礙它。

相關問題