2017-01-04 159 views
0

我正在通過算法書(C#)工作,並將所有示例和算法合併到一個Windows窗體應用程序中。這個想法是有一個帶按鈕的側面菜單,用於選擇要運行的「程序」,以及菜單右側的面板將顯示爲特定算法創建的窗體或用戶控件的按鈕。例如,其中一個菜單選項是「平行四邊形區域」,點擊時,用戶控件將顯示在選擇菜單(面板內)的右側,高度和寬度的輸入框,計算它的按鈕和輸出文本框的結果。我有點困惑,我應該使用哪種方法,我嘗試使用多個面板層疊在一起並最初隱藏它們,然後執行Show()點擊,但這證明是非常有問題的。我讀到使用用戶控制將允許更好的控制,但我不確定如何繼續。我想我的問題是我如何在顯示程序的窗體中顯示面板內的用戶控件顯示?我會上傳一張照片,但我沒有代表。在窗體中顯示不同的窗口(Windows窗體應用程序)

+0

要繼承你只是做一個「:」在類名後這樣你會是MyClass:面板 – Trey

+1

@Trey感謝您的答覆,「繼承」了的話我的一個糟糕的選擇,我的意思怎麼樣在面板中顯示特定的用戶控制? –

+0

對於要顯示的每個用戶控件,創建用戶控件的實例並將其添加到'Panel'的'Controls'集合中。有什麼問題? –

回答

0

不是爲每個應用程序實例化控件,而是隱藏它們,只顯示所選「應用程序」中的控件,考慮這一點:將主選擇器面板設計爲佔位符。當用戶選擇一個應用程序時,分配應用程序面板實例來代替選擇器面板實例,並允許應用程序執行完成。退出後,還原佔位符實例。

+0

謝謝,我想你已經把我放在正確的道路上我會讓你知道(: –

0

將所有按鈕點擊事件綁定到button1_Click

將您的面板放在彼此頂部並將可見屬性更改爲false。

然後,使用switch-case如下。

Button btn = sender as Button; 
switch (btn.Text) 
{ 
    case "Triangle": 
     pnlCircle.Visible = false; 
     pnlSquare.Visible = false; 
     pnlTriangle.Visible = true; 
     break; 

    case "Square": 
     pnlCircle.Visible = false; 
     pnlSquare.Visible = true; 
     pnlTriangle.Visible = false; 
     break; 

    case "Circle": 
     pnlCircle.Visible = true; 
     pnlSquare.Visible = false; 
     pnlTriangle.Visible = false; 
     break; 
} 
相關問題