摘自: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
转自http://hi.baidu.com/625610256/item/44c7bdce3f6bedd197445204摘自:MSDN1. TreeView TreeView 控件由节点组成。树中的每一项称为一个节点并由TreeNode 对象表示。包含其他节点的节点称为“父节点”。包含在其他节点中的节点称为“子节点”。没有任何子节点的节点称为“叶节点”。不被任
不知道朋友们使用
TreeView
和
TreeNode
遇到类似我一样的问题没有的,反正我百度上面却发现没怎么记录的。
先,说一下我遇到的问题:
1.
TreeView
添加上万个节点
TreeNode
,速度奇慢。
网上有一些介绍的方法,但不理想。我自己测试了一下,发现,
TreeNode
添加
TreeNode
不慢。那我将这1w条
TreeNode
添加到root
TreeNode
下,最后TreeVi
刚接触c#,项目中用到
Treeview
实现三态,即选中、未选中、半选中状态,并且要求父子节点选择联动,效果类似下图网上有很多例子,于是研究了一下,结合网上大佬们的例子,所以在这里记录一下。首先新建一个Winform工程拖个
TreeView
控件,然后运行。。。嗯。。。加点数据吧。private void CreateTree()
TreeNode
anime = new
TreeNode
...
我有以下两种方法,它们循环一个
TreeView
或
TreeNode
,
private
TreeNode
SearchNode(string nodetext,
TreeNode
node)
foreach (
TreeNode
nd in node.Nodes)
if (nd.Text == nodetext)
return nd;
return null;
private
URL:http://msdn.microsoft.com/zh-cn/library/5w99w164(v=vs.80).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-4
在树节点集合中的指定位置插入现有树节点。
命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.wind
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
这个包下面的
Hadoop运行任务时一直卡在: INFO mapreduce.Job: Running job
Gloria_0623: