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

时间:2013-02-25 16:13:08

标签: .net winforms

我的win树形图中有一个超过10个节点的树视图,根据每个节点的选择,我必须在表单的右侧显示相应的组框,我必须隐藏其他组框,是除了嵌套if else条件之外,还有最简单的方法。

1 个答案:

答案 0 :(得分:0)

这是一个潜在的解决方案:

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

当然,您需要在数组中存储对GroupBoxes的引用。这样就可以隐藏所有组框:

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);
    }
}