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