如何在Windows Form控件TreeView中遍历和查找指定的CheckBox状态
2010-05-22 15:56
459 查看
作为一个常用的的Control,TreeView控件给了我们很多的展现层次数据源的能力,其强大的定制性和易用性,非常受客户端应用程序开发者们的亲莱。不过在展现树形控件前面的CheckBox控件的状态时,我们有时或者需要遍历整棵树来得到所有的CheckBox的设置状态。
在示例代码之前,我们先来展示一下相关的类型:
1、 TreeView类
public class [b]TreeView : [/b]Control{
//设置树中的CheckBox的选中之前和之间触发的事件
}
2、 TreeNode类:
}
现在我们就可以通过上面这两个类提供的相关的属性和方法来操作TreeView中的CheckBox了。
[b] 意图:[/b]
我们要得到所有的选中的CheckBox的信息。这里我们为了使用的方便,我们在TreeView的结点中用Tag来附加了CheckBox是否选中的标识信息。如图所示
遍历方法
[b]结果如图:
![](http://pic002.cnblogs.com/img/suyan010203/201005/2010052216074796.png)
提示:
这里只是对TreeView这处内置控件的遍历算法一种相对简单的示例,因为在网上没有找到相关的资料,所以写出来给需要的朋友一个参考。示例代码
在示例代码之前,我们先来展示一下相关的类型:
1、 TreeView类
public class [b]TreeView : [/b]Control{
//设置树中的CheckBox的选中之前和之间触发的事件
public event TreeViewEventHandler [b]AfterCheck;[/b]
public event TreeViewCancelEventHandler [b]BeforeCheck;[/b]
//设置CheckBoxes启用状态,代码级使用
public bool [b]CheckBoxes { get; set; }[/b]
//得到当前子节点的最高层的父结点
public TreeNode [b]TopNode { get; set; }[/b]
}
2、 TreeNode类:
public class [b]TreeNode : [/b]MarshalByRefObject, ICloneable, ISerializable{
//当前结点的CheckBox状态
public bool [b]Checked { get; set; }[/b]
//附加特殊信息
public object [b]Tag { get; set; }[/b]
//遍历结点链表的属性
public TreeNode [b]PrevNode { get; }[/b]
public TreeNode [b]FirstNode { get; }[/b]
public TreeNode [b]NextNode { get; }[/b]
}
现在我们就可以通过上面这两个类提供的相关的属性和方法来操作TreeView中的CheckBox了。
[b] 意图:[/b]
我们要得到所有的选中的CheckBox的信息。这里我们为了使用的方便,我们在TreeView的结点中用Tag来附加了CheckBox是否选中的标识信息。如图所示
遍历方法
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.Name); //对树进行递归遍历 if(node.FirstNode !=null ){ TraversNodes(node.FirstNode); } if (node.NextNode !=null ){ TraversNodes(node.NextNode); } } }
[b]结果如图:
![](http://pic002.cnblogs.com/img/suyan010203/201005/2010052216074796.png)
提示:
这里只是对TreeView这处内置控件的遍历算法一种相对简单的示例,因为在网上没有找到相关的资料,所以写出来给需要的朋友一个参考。示例代码
相关文章推荐
- 如何在Windows Form控件TreeView中遍历和查找指定的CheckBox状态
- 如何在ASP.NET下遍历指定页面上所有控件
- 如何在ASP.NET下遍历指定页面上所有控件
- 如何在ASP.NET下遍历指定页面上所有控件
- 如何在ASP.NET下遍历指定页面上所有控件
- C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
- 如何设置其它进程中listctrl控件CHECKBOX的选中状态
- 如何在Asp.Net下遍历指定页面上的所有控件
- 如何在ASP.NET下遍历指定页面上所有控件
- 如何在C#的TreeView控件中双击节点而不改变节点的展开/折叠状态
- [转载]C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
- [导入]如何在ASP.NET下遍历指定页面上所有控件
- 转:zTree树控件入门之checkbox:如何动态设置节点的checkbox选择框启用与禁用状态(chkDisabled)
- 如何在ASP.NET下遍历指定页面上所有控件[原创]
- 在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解决,谢谢!
- 如何在ASP.NET下遍历指定页面上所有控件
- 如何在ASP.NET下遍历指定页面上所有控件
- 可双向并指定开始结点的treeview节点遍历查找方法类
- 如何在ASP.NET下遍历指定页面上所有控件
- win7中如何解决“该项不适用于在指定状态下使用”