Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在treeview中的上一个选定节点上执行操作(取消选中框)_C#_Winforms_Tree_Treenode - Fatal编程技术网

C# 如何在treeview中的上一个选定节点上执行操作(取消选中框)

C# 如何在treeview中的上一个选定节点上执行操作(取消选中框),c#,winforms,tree,treenode,C#,Winforms,Tree,Treenode,VS C#Winform树视图: 我是初学者,非常感谢你的帮助 我想取消选中上一个选定节点的复选框。 应用程序仅允许用户选择具有子节点的节点。然后,他们可以检查子节点。如果选择另一个父节点,则需要清除前面的复选框 Parent1具有子节点A、B和C Parent2具有子节点X、Y和Z 如果选择了父项1并选中了A、B和C,然后用户选择了父项2,则需要清除父项1的A、B和C复选框 我已尝试在beforeSelect事件中使用TreeNode tnBeforeSelect=tvFileMan.Sele

VS C#Winform树视图: 我是初学者,非常感谢你的帮助

我想取消选中上一个选定节点的复选框。 应用程序仅允许用户选择具有子节点的节点。然后,他们可以检查子节点。如果选择另一个父节点,则需要清除前面的复选框

Parent1具有子节点A、B和C Parent2具有子节点X、Y和Z 如果选择了父项1并选中了A、B和C,然后用户选择了父项2,则需要清除父项1的A、B和C复选框

我已尝试在beforeSelect事件中使用TreeNode tnBeforeSelect=tvFileMan.SelectedNode捕捉SelectedNode;但是当我尝试在after select事件中使用它时,它在该上下文中并不存在。我有一个全局变量类,但不知道如何添加treenode变量。我想我可以在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;
                    }
                }
            }

除了在
foreach
循环中选中的节点复选框之外,你不能只清除节点复选框吗?Alex,这就是我要做的。问题是,这段代码会是什么样子?具体来说,由于不再选中节点和子节点,如何引用它们?