首页 > 代码库 > winform TreeView 节点选择
winform TreeView 节点选择
public partial class Form1 : Form { public Form1() { InitializeComponent(); } string tag = "True"; StringBuilder nodesTag; /// <summary> /// 全选 /// </summary> /// <param name="treeNode"></param> /// <param name="nodeChecked"></param> private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked) { foreach (TreeNode node in treeNode.Nodes) { node.Checked = nodeChecked; node.Tag = tag;////记得在这里为选中的项目设置tag属性 if (node.Nodes.Count > 0) { this.CheckAllChildNodes(node, nodeChecked); } } } private void TraversNodes(TreeNode parent) { TreeNode node = parent; if (node != null) { if (node.Tag != null && node.Tag.ToString() == tag) nodesTag.AppendFormat("node:{0} has checked\n", node.Text); if (node.FirstNode != null)////如果node节点还有子节点则进入遍历 { TraversNodes(node.FirstNode); } if (node.NextNode != null)////如果node节点后面有同级节点则进入遍历 { TraversNodes(node.NextNode); } } } /// <summary> /// 已选中或取消选中框发生事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { if (e.Action != TreeViewAction.Unknown) { TreeNode node = e.Node; if (node.Tag == null) node.Tag = tag;//附加结点信息 else node.Tag = null; CheckAllChildNodes(e.Node, e.Node.Checked); //选中父节点 bool bol = true; if (e.Node.Parent != null) { for (int i = 0; i < e.Node.Parent.Nodes.Count; i++) { if (!e.Node.Parent.Nodes[i].Checked) bol = false; } e.Node.Parent.Checked = bol; ////记得如果父节点被选中或取消,记得设置它的tag if (bol) { e.Node.Parent.Tag = tag; } else { e.Node.Parent.Tag = null; } } } } }
winform TreeView 节点选择
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。