如何在树视图中对上一个选定节点执行操作(取消选中复选框)
本文关键字:操作 执行 取消 复选框 节点 视图 上一个 | 更新日期: 2023-09-27 18:24:27
VS C#窗体树视图:我是个初学者,非常感谢你的帮助。
我想取消选中上一个选定节点的框。该应用程序仅允许用户选择具有子节点的节点。然后,他们可以检查子节点。如果他们选择了另一个父节点,则需要清除以前的复选框。
Parent1具有子节点A、B和amp;CParent2具有子节点X、Y和amp;Z如果选择了Parent 1,并且A、B、&选中C,然后用户选择Parent2,即A、B和amp;需要清除父级1的C。
我已经尝试用TreeNode tnBeforeSelect=tvFileMan.SelectedNode在beforeSelect事件中捕获SelectedNode;但当我尝试在after-select事件中使用它时,它在该上下文中并不存在。我有一个全局变量类,但不知道如何添加树节点变量。我想我可以在afterCheck事件中用类似的东西取消选中。
foreach (TreeNode tn in tnBeforeSelect)
{
tnBeforeSelect.Nodes.Checked = false;
}
已解决。位置,位置,位置。诀窍是将foreach循环放置在BeforeCheck事件处理程序中,因为SelectedNode尚未更改。
if (e.Node.Nodes.Count >= 1)
{
if (tvFileMan.SelectedNode != null)
{
tvFileMan.SelectedNode.Checked = false;
foreach (TreeNode tn in tvFileMan.SelectedNode.Nodes)
{
if (tn.Nodes.Count.Equals(0))
tn.Checked = false;
}
}
}