我有一個帶兩個按鈕的基本窗體(例如「確定」和「取消」)。我想使用TableLayoutPanel
並在其中有兩個按鈕。子表單應該能夠向表中添加更多控件,並且可以通過設計器修改其自身的佈局。將繼承的控件添加到面板
到目前爲止,我無法得到這個工作。我試過以下內容:
- 將
TableLayoutPanel
添加到子窗體。 Designer拒絕將兩個按鈕添加到面板。 - 在基本形式中添加
TableLayoutPanel
。無法將控件從子窗體添加到面板。
我有一個帶兩個按鈕的基本窗體(例如「確定」和「取消」)。我想使用TableLayoutPanel
並在其中有兩個按鈕。子表單應該能夠向表中添加更多控件,並且可以通過設計器修改其自身的佈局。將繼承的控件添加到面板
到目前爲止,我無法得到這個工作。我試過以下內容:
TableLayoutPanel
添加到子窗體。 Designer拒絕將兩個按鈕添加到面板。TableLayoutPanel
。無法將控件從子窗體添加到面板。由於近一年來這個問題還沒有得到答案,而且WindowsForms正在逐漸失去對WPF的支持,答案似乎是「只是不這樣做」。
是的,正如@Iring Ringrose說的那樣,設計不會玩球,並且會持續地從派生類中刪除自動生成的代碼。是的,WPF和朋友們都有更好的故事。請記住GDI以及它所穿的所有裙子,比如WinForms比你更老,並且有設計疣可以匹配!而CodeDOM方法並沒有得到支持...... – 2011-02-15 08:06:25
在基本形式中,您必須爲TableLayoutPanel和您想要在子窗體中更改的任何其他控件設置屬性Modifiers = Protected。
不行,不起作用。 – 2010-02-13 09:35:58
在VS2012,.NET 4.0中爲我工作;祖先與「修飾符」面板設置爲「受保護」(在設計時)。編譯/保存,然後編輯後代並將項目添加到面板 - 沒有問題。 – Geoff 2013-09-22 16:40:14
你不能在派生類中編輯TableLayoutPanel
的原因是你試圖使用名爲'可視繼承'的WinForms特性。不幸的是,TableLayoutPanel
不支持可視化繼承:
http://msdn.microsoft.com/en-us/library/ms171689.aspx(在頁面的底部讀取) http://msdn.microsoft.com/en-us/library/1z3efhd2.aspx
這就是爲什麼它似乎受阻於繼承控制。我不確定他們爲什麼不支持這個功能,但我最近遇到了同樣的問題,最終不得不以另一種方式解決問題。
我從來沒有讓設計師適用於子分類表單,您可能需要使用代碼來添加按鈕。 – 2010-02-07 21:19:22