2012-01-08 127 views
1

我有一個WinForms應用程序,它有兩個分別包含一個usercontrol組件(每個面板一個)的面板。如何,因爲兩個面板是相同的大小,並在同一個位置,最上面的面板成爲另一個面板的孩子。我希望能夠隱藏一個面板,然後顯示其他面板:重疊面板時防止子組件

this.panel1.visibile = false; 
this.panel2.visibile = true; 

但是,當我躲在PANEL1,第二面板被隱藏。

我該如何讓panel2成爲panel1的非孩子?

我喜歡讓事情變得簡單,因爲我是C#編程新手。

回答

0

這是設計師常見的事故。將第二個面板放在第一個面板的頂部將使其成爲第一個面板的孩子。解決此問題的兩個基本策略:

  • 查看+其他Windows +文檔大綱。單擊列表中的第二個面板並將其拖到窗體中。您需要手動修復位置屬性,方法是在屬性窗口中鍵入其值。

  • 將第二個面板的左上角稍微留在第一個面板的左側或頂部。通過在InitializeComponent()調用之後分配其Location屬性,將它放在窗體構造函數的正確位置。

檢查this answer爲在設計時運行良好的控件,並讓您在運行時輕鬆地翻轉面板。

+0

感謝,初始化它在initializeComponent()工作魅力 – 2012-01-09 15:40:00

0

設計人員會自動執行此操作,因爲它假定當您將一個控件拖到另一個控件上時,您希望使其成爲該控件的子控件。

我通常會做的是在窗體上的不同位置創建控件,然後使用屬性手動匹配兩個控件的大小位置。