TreeView,TreeNode,TreeNodeCollection
来源:互联网 发布:MySQL删除重复记录 编辑:程序博客网 时间:2024/04/30 10:00
转自http://hi.baidu.com/625610256/item/44c7bdce3f6bedd197445204
摘自:MSDN
1. TreeView
TreeView 控件由节点组成。树中的每一项称为一个节点并由TreeNode 对象表示。包含其他节点的节点称为“父节点”。包含在其他节点中的节点称为“子节点”。没有任何子节点的节点称为“叶节点”。不被任何其他节点包含并且是所有其他节点的上级节点的节点称为“根节点”。一个节点可以同时是父节点和子节点,但是不能同时为根节点、父节点和叶节点。节点为根节点、父节点还是叶节点决定着节点的几种可视化属性和行为属性。
典型的树只有一个根节点,但 TreeView 控件允许您向树结构中添加多个根节点。如果希望在显示项列表的同时不显示单个的主根节点(例如显示产品类别列表),那么此功能将十分有用。
节点主要在两个属性中存储数据:Text 属性和Value 属性。在 TreeView 控件中显示 Text 属性的值,而 Value 属性用于存储有关节点的所有其他数据,如用于处理回发事件的数据。节点还在 ValuePath 属性中存储从该节点到其根节点的路径。ValuePath 属性指示节点相对于根节点的位置。
2. TreeNode
TreeNode 对象由以下四个用户界面 (UI) 元素组成,可以自定义或隐藏这些元素:
展开节点指示图标,以表明节点是展开的、折叠的还是不可展开的。
与节点关联的可选复选框。
可选的节点图像。
节点文本。
可以通过设置 TreeView 类的 ExpandImageUrl、CollapseImageUrl 和NoExpandImageUrl 属性,指定可展开、可折叠和不可展开的节点的自定义图像。通过将 TreeView 类的 ShowExpandCollapse 属性设置为 false,甚至可以完全隐藏展开节点的指示图标。
若要在节点旁显示复选框,请设置 TreeView 类的ShowCheckBoxes 属性。如果 ShowCheckBoxes 属性设置为 TreeNodeType.Node 以外的一个值,将在指定的节点类型旁显示复选框。通过设置节点的ShowCheckBox 属性,可以有选择地重写个别节点的复选框。如果显示复选框,可使用 Checked 属性确定复选框是否被选中。
通过设置 ImageUrl 属性可以在节点中显示图像。此图像显示在节点文本旁。
TreeView 控件中的节点文本可以处于两种模式之一:选择模式或导航模式。默认情况下,会有一个节点处于选定状态。若要使一个节点处于导航模式,请将该节点的NavigateUrl 属性值设置为空字符串 ("") 以外的值。若要使节点处于选择模式,请将节点的 NavigateUrl 属性设置为空字符串。
默认情况下,单击处于选择模式的节点会将页面回发到服务器并引发 SelectedNodeChanged 事件。也可以选择设置节点的 SelectAction 属性,指定引发其他事件。有关更多信息,请参见SelectAction。若要确定哪个节点在被单击时处于选择模式,请使用 TreeView 控件的 SelectedNode 属性。
当节点处于导航模式时,禁用该节点的所有选择事件。单击处于导航模式的节点时,用户将被定向到指定的 URL。可以选择设置Target 属性以指定用来显示链接内容的窗口或框架。
TreeNode 类包含一些用于存储节点状态的属性。可使用Selected 属性确定节点是否被选定。若要确定节点是否已展开,请使用 Expanded 属性。DataBound 属性用于确定节点是否绑定到数据。当节点绑定到数据时,可以使用DataItem 属性访问基础数据项。
此类提供了一些属性,有助于确定一个节点相对于树中其他节点的位置。使用 Depth 属性确定节点的深度。使用 ValuePath 属性可以获得从当前节点到其根节点的分隔节点列表。若要确定节点的父节点,请使用Parent 属性。使用 ChildNodes 集合访问子节点。
有时,静态地预定义树结构并不可行,因为有时数据大小或自定义内容依用户输入而定。因此,TreeView 控件支持动态节点填充。在运行阶段,可以在展开节点时填充该节点。有关动态节点填充的更多信息,请参见PopulateOnDemand 属性。
有关 TreeNode 的实例的初始属性值列表,请参见TreeNode 构造函数。
3. TreeNodeCollection
TreeNodeCollection 类用于存储和管理TreeView 控件中的 TreeNode 对象的集合。TreeView 控件在其两个属性中使用TreeNodeCollection 类。在 Nodes 属性中存储其根节点,在 CheckedNodes 属性中存储其选定的节点。TreeNodeCollection 集合也用于 ChildNodes 属性来存储子节点(如果有的话)。
TreeNodeCollection 类支持多种访问集合中的项的方法:
使用 Item 索引器直接在特定的从零开始的索引处检索 TreeNode 对象。
使用 GetEnumerator 方法创建可用于循环访问集合的枚举数。
使用 foreach (C#) 或 For Each (Visual Basic) 循环访问集合。
使用 CopyTo 方法将集合的内容复制到一个 Array 对象中。
可以通过添加和移除 TreeNode 对象以编程方式管理TreeNodeCollection。若要在集合中添加节点,请使用 Add 或 AddAt 方法。若要从集合中移除节点,请使用 Remove、RemoveAt 或Clear 方法。
4. Sample
自动化测试情况下:
先实例化treeview,然后
TreeNodeCollection treeNodeCollection = treeView.Nodes;
foreach(TreeNode treeNode in treeNodeCollection)
{
treeNode.select();
if(treeNode.text == "abcd")
{
Console.WriteLine("The node 'abcd' is found.");
具体处理;
break;
}
}
参考:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.treeview_members(VS.80).aspx
- TreeView,TreeNode,TreeNodeCollection
- TreeView,TreeNode,TreeNodeCollection 的使用
- TreeView插入节点的方法:TreeNodeCollection.Insert 方法 (Int32, TreeNode)
- C#中的TreeView与TreeNode
- 动态加载TreeNode -- ComponentArt TreeView
- TreeView、TreeNode练习,使用指针
- C#中的TreeView与TreeNode,switch
- 动态修改TreeView某些节点TreeNode样式
- TreeNode
- TreeView.AfterCheck和TreeNode.Checked赋值的问题
- 我的JS TreeView树(三)----ctxmenu on treeNode
- 获取treeview中当前鼠标所指的节点treenode
- 获取treeview中当前鼠标所指的节点treenode 。
- Note 07/08/08 TreeView,TreeNode,DataView and DataRowView in Asp.Net2.0
- TreeView 控件树节点 TreeNode 的异步加载及对节点 CHECKBOX 的多选控制
- 利用风骚小递归遍历MenuStrip获取TreeView中的TreeNode项
- TreeView控件时发现带有CheckBox控件的TreeNode对象(TreeView节点),选择CheckBox无法回发页面
- 关于TreeNode
- oracle基础操作
- Android应用程序资源的编译和打包过程分析
- 在Finder中显示隐藏文件
- Oracle中在ordery中用case when
- qtcreator双击运行问题
- TreeView,TreeNode,TreeNodeCollection
- 打造心中的暗黑传奇3
- java--当中的线程(3)(第38集)
- java 基本类型
- Uva - 10635 - Prince and Princess(LCS转LIS)
- 使用dbms_metadata.get_ddl出现ORA-31605错误
- 招聘移动开发,老板必问的10个问题
- Linux 的基础命令操作图解
- Android一个工程引用另一个工程