2014-03-07 57 views

回答

1

確保您已放置在同一個容器或表單中的所有面板控制。那麼你可以使用Visible屬性來顯示和隱藏面板。將使用BringFrontSendToBack函數將面板置於頂部或將其發回。如果您已將任何面板放置在另一個面板中,則在隱藏父面板時該面板將消失。所以,確保所有面板的父級控制必須相同。要確定家長控制,只需選擇該面板並按下退出鍵選擇他們的家長。

private void LoadPanels() 
{ 
    panel1.Location = new Point(10,10); 
    panel2.Location = new Point(10,10); 
    panel3.Location = new Point(10,10); 
    panel4.Location = new Point(10,10); 
    panel5.Location = new Point(10,10); 

    VisiblePanel("panel1"); 
} 

private void VisiblePanel(string panelName) 
{ 
    string[] panels = new string[]{"panel1","panel2","panel3","panel4","panel5"}; 
    for (int i=0;i<panels.Length;i++) 
     this.Controls[panels[i]].Visible = (panels[i] == panelName); 

    this.Controls[panelName].BringToFront(); //Not required you can remove this line. 
} 
+0

嘿,感謝名單我得到了解決。 – snehal

+0

@snehal你可以使用上面的例子來顯示和隱藏你的面板。 – 2014-03-07 10:18:12

1

以下是你可能要考慮一個稍微不同的方法......

你希望能夠以編程方式選擇在運行時的矩形區域中的內容,各種控件來顯示中進行選擇?如果是這樣,您可以使用自定義TabControl其隱藏標籤(而不是頁面)。

然後,您可以選擇哪些頁面是由在運行時編程方式改變其SelectedIndex屬性中顯示。

做它像這意味着你的表格編輯器會顯示正常的標籤控件,它可以讓你更輕鬆地添加內容到每個頁面 - 但在運行時的選項卡將從用戶隱藏;他們只會看到當前所選頁面的內容。

Hans Passant's answer here如何創建這樣的自定義選項卡控制。

(但是,你也可能要重寫的onkeydown自定義選項卡控制,以忽略Ctrl-Tab組合。)

相關問題