TreeView CheckBox勾选联动
来源:互联网 发布:有哪些抢购软件 编辑:程序博客网 时间:2024/06/05 10:40
在C# Winform项目中用到了TreeView控件,并且需要勾选的功能,父子节点联动,需要实现如下:
1.当选中父节点的时候,如果它的子节点有没有选中的,则选中。
2.当取消选中父节点的时候,将所有子节点都取消选中。
3.当选中子节点的时候,要判断它的父节点中的所有子节点,是不是都已经选中,如果都选中则选中父节点。
4.当取消子节点的时候,要判断父节点是否已经被勾选上,如果勾选上则取消选中父节点。
注意:所有的节点都有可能既是父节点,又是子节点。举例:当效果3满足时,选中了父节点,那么这个父节点有自己的父节点,那么就要再执行一遍效果3.
如果我们处理了一个节点,那么这个节点相关联的父节点,和父节点的父节点,。。。,以及这个节点的子节点,和这个节点的子节点。。。,都会发生联动反应。所以我在处理这个问题的时候,用到了递归。
TreeView有一个事件:AfterCheck。我们不用去命名新的递归,直接用这个事件,当勾选了一个节点的时候,会进入这个事件,在这个事件内用代码去勾选节点的时候,也会触发这个事件。AfterCheck的参数就是勾选的节点。;对于我联动勾选节点的情况而言,这个就是递归。
勾选节点联动代码,只要在AfterCheck事件内编写代码就可以达到效果,下面是代码,没有注释:
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { try { if (e.Node.Nodes.Count > 0) { bool NoFalse = true; foreach (TreeNode tn in e.Node.Nodes) { if (tn.Checked == false) { NoFalse = false; } } if (e.Node.Checked == true || NoFalse) { foreach (TreeNode tn in e.Node.Nodes) { if (tn.Checked != e.Node.Checked) { tn.Checked = e.Node.Checked; } } } } if (e.Node.Parent != null && e.Node.Parent is TreeNode) { bool ParentNode = true; foreach (TreeNode tn in e.Node.Parent.Nodes) { if (tn.Checked == false) { ParentNode = false; } } if (e.Node.Parent.Checked != ParentNode && (e.Node.Checked == false || e.Node.Checked == true && e.Node.Parent.Checked == false)) { e.Node.Parent.Checked = ParentNode; } } } catch (Exception ex) { } }
0 0
- TreeView CheckBox勾选联动
- 【转】C# webform中treeview的checkbox勾选父子联动事件如何实现?
- TreeView的checkbox之父子联动处理方法
- 带checkbox的treeview父子节点的联动选择
- TreeView 联动
- 自定义CheckBox,用自己的方式来实现个性勾选。checkbox与button的联动。
- C# TreeView CheckBox 代码挑勾选中
- C# winform treeView checkbox全选反选
- js实现treeview中checkbox单选
- 实现TreeView单选框CheckBox单选
- C#winform treeView checkbox全选反选
- treeview 父子节点联动
- .NET中的TreeView控件的checkbox勾选问题的解决办法
- 让TreeView带上CheckBox
- TreeView&CheckBox(ASP.NET)
- Add CheckBox to TreeView
- TreeView with CheckBox
- 带Checkbox的TreeView
- 信号与信号量的区别[转]
- RGB HSV CMYK LAB颜色空间
- jQuery-easyUI的使用:layout实现基本框框
- Web性能优化-合并js与css,减少请求
- 使用IntelRealScene设备结合Cocos引擎实现体感游戏开发
- TreeView CheckBox勾选联动
- 【免费咨询】 Cloudera Hadoop大数据培训:管理员、开发者、数据分析
- 获取apk文件上的精美图片素材
- iOS socket udp 广播
- UESTC 1218 Pick The Sticks
- Java编程思想小笔记
- FUSE用户态文件系统中自己实现的highlevel接口函数从注册到调用完全追踪
- Xcode 7:Storyboard Reference、Strong IBOutlet以及Scene Dock
- Mybatis 注入全局参数