基于.Net winform中的树视图选择显示多个组框

基于.Net winform中的树视图选择显示多个组框,.net,winforms,.net,Winforms,我的win表单中有一个树视图,它有10多个节点,根据每个节点的选择,我必须在表单右侧显示相应的组框,并且我必须隐藏其他组框,除了嵌套的if-else条件,还有什么最简单的方法吗。这里有一个潜在的解决方案: 假设您尚未将TreeNode的属性用于其他内容,则可以将该属性设置为相应的GroupBox控件。然后,订阅TreeView控件的,并使用所选节点的Tag属性来确定要显示哪个GroupBox。所有其他的都应该隐藏起来 当然,您将希望在数组中存储对GroupBox的引用。这样,隐藏所有组框就很容易

我的win表单中有一个树视图,它有10多个节点,根据每个节点的选择,我必须在表单右侧显示相应的组框,并且我必须隐藏其他组框,除了嵌套的if-else条件,还有什么最简单的方法吗。

这里有一个潜在的解决方案:

假设您尚未将TreeNode的属性用于其他内容,则可以将该属性设置为相应的GroupBox控件。然后,订阅TreeView控件的,并使用所选节点的Tag属性来确定要显示哪个GroupBox。所有其他的都应该隐藏起来

当然,您将希望在数组中存储对GroupBox的引用。这样,隐藏所有组框就很容易:

foreach(var gb in arrayOfGroupBoxes)
{
    gb.Visible = false;
}
NodeMouseClick事件处理程序的实现可能类似于:

void TVNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    var activeGroupBox = e.Node.Tag as GroupBox;

    foreach(var gb in arrayOfGroupBoxes)
    {            
        gb.Visible = ReferenceEquals(activeGroupBox, gb);
    }
}