2010-02-07 86 views
3

我有一個帶兩個按鈕的基本窗體(例如「確定」和「取消」)。我想使用TableLayoutPanel並在其中有兩個按鈕。子表單應該能夠向表中添加更多控件,並且可以通過設計器修改其自身的佈局。將繼承的控件添加到面板

到目前爲止,我無法得到這個工作。我試過以下內容:

  • TableLayoutPanel添加到子窗體。 Designer拒絕將兩個按鈕添加到面板。
  • 在基本形式中添加TableLayoutPanel。無法將控件從子窗體添加到面板。
+2

我從來沒有讓設計師適用於子分類表單,您可能需要使用代碼來添加按鈕。 – 2010-02-07 21:19:22

回答

0

由於近一年來這個問題還沒有得到答案,而且WindowsForms正在逐漸失去對WPF的支持,答案似乎是「只是不這樣做」。

+0

是的,正如@Iring Ringrose說的那樣,設計不會玩球,並且會持續地從派生類中刪除自動生成的代碼。是的,WPF和朋友們都有更好的故事。請記住GDI以及它所穿的所有裙子,比如WinForms比你更老,並且有設計疣可以匹配!而CodeDOM方法並沒有得到支持...... – 2011-02-15 08:06:25

5

在基本形式中,您必須爲TableLayoutPanel和您想要在子窗體中更改的任何其他控件設置屬性Modifiers = Protected。

+0

不行,不起作用。 – 2010-02-13 09:35:58

+0

在VS2012,.NET 4.0中爲我工作;祖先與「修飾符」面板設置爲「受保護」(在設計時)。編譯/保存,然後編輯後代並將項目添加到面板 - 沒有問題。 – Geoff 2013-09-22 16:40:14

3

你不能在派生類中編輯TableLayoutPanel的原因是你試圖使用名爲'可視繼承'的WinForms特性。不幸的是,TableLayoutPanel不支持可視化繼承:

http://msdn.microsoft.com/en-us/library/ms171689.aspx(在頁面的底部讀取) http://msdn.microsoft.com/en-us/library/1z3efhd2.aspx

這就是爲什麼它似乎受阻於繼承控制。我不確定他們爲什麼不支持這個功能,但我最近遇到了同樣的問題,最終不得不以另一種方式解決問題。