当前位置: 首页 > 编程语言 > C#

TreeView选中-取消选中所有子项分享

时间:2023-04-10 18:32:19 C#

TreeView选中/取消选中所有子项如何在TreeView中选中/取消选中所有子项?当其中一项被选中并且子项被错误选中/取消选中时,可能会发生错误。链接到VS2010Project+ExeYOUTUBE上的视频privatevoidForm1_Load(objectsender,EventArgse){treeView1.CheckBoxes=true;treeView1.BeginUpdate();treeView1.Nodes.Add("1111");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes[1].Nodes.Add("3333");treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");treeView1.EndUpdate();treeView1.ExpandAll();}privatevoidtreeView1_AfterCheck(objectsender,TreeViewEventArgse){treeView1.BeginUpdate();foreach(e.Node.Nodes中的TreeNode节点){Node.Checked=e.Node.Checked;}treeView1.EndUpdate();}使用Form_Load中的代码保护它的代码,并在代码中添加这两种方法privatevoidForm1_Load(objectsender,EventArgse){treeView1.CheckBoxes=true;treeView1.BeginUpdate();treeView1.节点。添加(“1111”);treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes.Add("2222");treeView1.Nodes[0].Nodes[1].Nodes.Add("3333");treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");treeView1.EndUpdate();treeView1.ExpandAll();}privatevoidtreeView1_AfterCheck(objectsender,TreeViewEventArgse){foreach(TreeNodechildNodeine.Node.Nodes){childNode.Checked=e.Node.Checked;我找到的解决方案如下:我从以下Web实现中获得了ForEach到IEnumerable:如果(action==null)thrownewArgumentNullException("action");foreach(源中的T项目){操作(项目);}}祝你好运!这是一个答案(来自HansPassant):Winformstreeview,checkchildnodesrecursivelyquestion我写这个作为答案,而不是评论,以便于查找到达以上是C#学习教程:TreeView勾选/取消勾选所有子项共享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注—if(e.Node.Nodes.Count>0){/*调用CheckAllChildNodes方法,传入checked状态改变的TreeNode的当前Checked值。*/这个.CheckAllChildNodes(e.Node,e.Node.Checked);}}}privatevoidCheckAllChildNodes(TreeNodetreeNode,boolnodeChecked){foreach(TreeNodenodeintreeNode.Nodes){node.Checked=nodeChecked;if(node.Nodes.Count>0){//如果当前节点有子节点,则递归调用CheckAllChildsNodes方法。this.CheckAllChildNodes(node,nodeChecked);}}}privatevoidCheckAllChildNodes(TreeNodetreeNode,boolnodeChecked){foreach(TreeNodenodeintreeNode.Nodes){node.Checked=nodeChecked;如果(node.Nodes.Count>0){this.CheckAllChildNodes(node,nodeChecked);}}}私人无效treeView_AfterCheck(objectsender,TreeViewEventArgse){if(e.Action!=TreeViewAction.Unknown){if(e.Node.Nodes.Count>0){if(!e.Node.Checked){this.CheckAllChildNodes(e.节点,e.Node.Checked);}}}if(e.Node.Parent!=null){TreeNoden=e.Node;while(n.Parent!=null){if(n.Checked){n.Parent.Checked=true;}n=n.Parent;}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: