我已經閱讀了this question,它談論的是同樣的事情,但我對設計有一個具體問題。如你所知,VS中的選項對話框是左邊的TreeView控件,右邊是控制面板,其中包含當前選擇TreeView控件的所有選項。基於上述問題給出的建議,我決定爲每個「面板」選項建立一個UserControl。我正在嘗試確定當用戶在TreeView中選擇特定節點時使所選面板可見並隱藏所有其他面板的最佳方式。在當在TreeView一個新的節點選擇了做以下爲我的事件處理程序:構建一個類似於VS選項對話框的選項對話框
If e.Node.Name.CompareTo("PanelAName") = 0 Then
PanelA.Visible = True
PanelA.Enabled = True
PanelB.Visible = False
PanelB.Enabled = False
ElseIf e.Node.Name.CompareTo("PanelBName") = 0 Then
PanelA.Visible = False
PanelA.Enabled = False
PanelB.Visible = True
PanelB.Enabled = True
End If
唯一的問題是而不是隻是在示例代碼中的兩個面板我將有一個像15-25。儘管我仍然可以像這樣做,但似乎還需要更多的代碼行。任何建議在更好的方式?
使用策略模式。 – MoonKnight
循環遍歷容器中的所有控件(面板),如果名稱不匹配,則使它們不可見? – davisoa