2011-04-17 39 views
-1

我有一個mydatagridview類繼承的內置DataGridView控制,如下圖所示:如何使用從主窗體上的內置控件繼承的自定義控件類?

public class mydatagridview : DataGridView 
{ 
    protected override bool ProcessDataGridViewKey(KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      this.ProcessTabKey(e.KeyData); 
      return true; 
     } 
     return base.ProcessDataGridViewKey(e); 
    } 

    protected override bool ProcessDialogKey(Keys keyData) 
    { 
     if (keyData == Keys.Enter) 
     { 
      this.ProcessTabKey(keyData); 
      return true; 
     } 
     return base.ProcessDialogKey(keyData); 
    } 
} 

現在我想利用它在我的主類:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
} 

我想使用myDatagridview和Datagridview1:public partial class Form1:Form

我該怎麼做?

+1

什麼阻止你?你能更清楚地陳述你的問題嗎? – 2011-04-17 08:28:35

+0

將其標記爲「如何利用」,然後從「將它添加到表單後如何使用」開始。 – 2011-04-17 08:49:18

+0

@Sanjeevkumar僱主,我沒有得到它,請你解釋。 – mahesh 2011-04-17 09:03:54

回答

2

您需要創建自定義控件類的實例,然後將該實例添加到表單的Controls集合中。例如:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

     // Create an instance of your custom control 
     mydatagridview myDGV = new mydatagridview(); 

     // Add that instance to your form's Controls collection 
     this.Controls.Add(myDGV); 
    } 
} 

當然,你也可以做到從設計同樣的事情。它會自動在InitializeComponent()方法中插入與上面顯示的非常相似的代碼。

如果您的自定義控制不會在工具箱中顯示你重建項目後自動,請確保你已經enabled toolbox auto-population

  1. 從「工具」菜單,選擇「選項」 。
  2. 展開「Windows窗體設計器」類別。
  3. 將「AutoToolboxPopulate」屬性設置爲True。

    Set the AutoToolboxPopulate to True in VS Options

+0

好的控件已經添加到類中,但是如何將它與form1_load eventhandller一起用於添加到Datagridview的列 – mahesh 2011-04-17 08:34:44

+0

@mahesh:如果從設計器添加控件,它將自動創建與該實例相對應的類級變量的控制。如果你通過代碼手動添加它,你必須自己聲明這樣一個變量。然後,只需通過調用該實例上的方法來添加列。 – 2011-04-17 08:38:13

+0

是的你是對的,並感謝您建議良好的鏈接和很好的敘述答案。 – mahesh 2011-04-17 09:00:02

1

如果我理解正確的話,我不知道,我這樣做,你可以使用它像任何其他類型的:

mydatagridview mydatagrid = new mydatagridview(); 
this.Controls.Add(mydatagrid); 
0

旁邊有答案已經給出了,應該可以將控件從工具箱拖放到表單中。

如果您創建用戶控件或自定義控件並構建項目,控件應顯示在工具箱中。

相關問題