2013-09-22 98 views
1

根據XML自定義選項,我開發了一種項目,我需要一個很酷的可定製界面,所以我設計了一個「父窗體」,所有的孩子都可以從中「定型」。 我在中間添加了一個TableLayoutPanel來繪製邊框,Panel,子窗體應該會添加他們的組件並完成他們的工作。將子組件添加到父面板?

我面對的問題是,即使我將該「內容面板」設置爲「公開」,設計師也不會讓我從子窗體添加控件。

有沒有什麼不同的方式可以讓我從可定製的超類派生出可設計的表單?

編輯:父類是公共的,每個包含Content-Panel的容器也都設置爲public。

enter image description here

+0

可能有[如何在自定義控件中啓用設計支持? (http://stackoverflow.com/questions/2785376/how-to-enable-design-support-in-a-custom-control) –

回答

0

我手動添加到孩子的designer.cs父的內容窗格內一個新的面板,將其設置爲DockStyle.Fill。當我回到設計師的時候,現在讓我添加組件到孩子的內容面板。

有點亂,我敢肯定應當有各地的另一種方式......

但我會喜歡這個工作,直到沿我能想出更好的解決方法。

0

我在父類的範圍中添加了一個來自設計師以外的代碼的新公共面板,然後在父構造函數中,我將它添加到TableLayoutPanel,從InitializeComponents()調用和BAM下面的構造函數代碼中配置停靠和colspan!

public Panel contentPane = new Panel(); 

    public Dialogo() 
    { 
     InitializeComponent(); 
     Content.Controls.Add(contentPane); 
     contentPane.Dock = DockStyle.Fill; 
     // More code 
    } 

所以它的「內容」,這是在表中ocupying 5列(所以表包圍它,讓我周圍繪製邊框。 我不知道的第二行另一面板內的contentPane爲什麼,但是在代碼中添加了內容面板而不是設計師允許我直接從設計器的子表單中將組件添加到面板中。