在C# Winform项目中用到了TreeView控件,并且需要勾选的功能。父子节点联动,需要实现如下: 1.当选中父节点的时候,如果它的子节点有没有选中的,则选中。 2.当取消选中父节点的时候,将所有子节点都取消选中。 ...
在C# Winform项目中用到了TreeView控件,并且需要勾选的功能。父子节点联动,需要实现如下:
1.当选中父节点的时候,如果它的子节点有没有选中的,则选中。
2.当取消选中父节点的时候,将所有子节点都取消选中。
3.当选中子节点的时候,要判断它的父节点中的所有子节点,是不是都已经选中,如果都选中则选中父节点。
4.当取消子节点的时候,要判断父节点是否已经被勾选上,如果勾选上则取消选中父节点。
注意:所有的节点都有可能既是父节点,又是子节点。举例:当效果3满足时,选中了父节点,那么这个父节点有自己的父节点,那么就要再执行一遍效果3.
如果我们处理了一个节点,那么这个节点相关联的父节点,和父节点的父节点,。。。,以及这个节点的子节点,和这个节点的子节点。。。,都会发生联动反应。所以我在处理这个问题的时候,用到了递归。
TreeView有一个事件:AfterCheck。我们不用去命名新的递归,直接用这个事件,当勾选了一个节点的时候,会进入这个事件,在这个事件内用代码去勾选节点的时候,也会触发这个事件。AfterCheck的参数就是勾选的节点。;对于我联动勾选节点的情况而言,这个就是递归。
勾选节点联动代码,只要在AfterCheck事件内编写代码就可以达到效果,下面是代码,没有注释:
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
原标题:TreeView CheckBox勾选联动
关键词:ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。