TreeView,TreeNode,TreeNodeCollection 的使用


摘自:MSDN

1. TreeView

       TreeView 控件由节点组成。树中的每一项称为一个节点并由 TreeNode 对象表示。包含其他节点的节点称为“父节点”。包含在其他节点中的节点称为“子节点”。没有任何子节点的节点称为“叶节点”。不被任何其他节点包含并且是所有其他节点的上级节点的节点称为“根节点”。一个节点可以同时是父节点和子节点,但是不能同时为根节点、父节点和叶节点。节点为根节点、父节点还是叶节点决定着节点的几种可视化属性和行为属性。

典型的树只有一个根节点,但 TreeView 控件允许您向树结构中添加多个根节点。如果希望在显示项列表的同时不显示单个的主根节点(例如显示产品类别列表),那么此功能将十分有用。

       节点主要在两个属性中存储数据:Text 属性和 Value 属性。在 TreeView 控件中显示 Text 属性的值,而 Value 属性用于存储有关节点的所有其他数据,如用于处理回发事件的数据。节点还在 ValuePath 属性中存储从该节点到其根节点的路径。ValuePath 属性指示节点相对于根节点的位置。

2. TreeNode

TreeNode 对象由以下四个用户界面 (UI) 元素组成,可以自定义或隐藏这些元素:

  • 展开节点指示图标,以表明节点是展开的、折叠的还是不可展开的。

  • 与节点关联的可选复选框。

  • 可选的节点图像。

  • 节点文本。

        可以通过设置 TreeView 类的 ExpandImageUrlCollapseImageUrl 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 方法。若要从集合中移除节点,请使用 RemoveRemoveAt 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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将TreeNode显示到TreeView中,可以使用TreeView的Nodes属性添加TreeNode对象。 例如,假设已经创建了一个名为treeView1的TreeView控件,并且需要将一个名为rootNode的TreeNode对象显示为根节点,可以使用以下代码: treeView1.Nodes.Add(rootNode); 如果要将其它的节点添加到根节点下,可以使用rootNode的Nodes属性添加子节点。例如,创建一个名为子节点1的TreeNode对象,并将其添加到根节点下: TreeNode childNode1 = new TreeNode("子节点1"); rootNode.Nodes.Add(childNode1); 以此类推。需要根据树的结构逐层添加节点。 ### 回答2: 将TreeNode显示到TreeView的过程主要是通过操作TreeView控件的Nodes属性来实现的。 首先,我们需要创建一个TreeNode对象,该对象代表要显示的节点。TreeNode类的构造函数可以设置节点的文本、图标等属性。 然后,我们可以通过TreeView控件的Nodes属性访问TreeView的所有节点。如果TreeView上没有任何节点,我们可以直接将创建的TreeNode对象添加到TreeView的Nodes集合中。如果TreeView上已有节点,我们可以选择一个已存在的节点作为父节点,将创建的TreeNode对象添加到该父节点的Nodes集合中。 可以通过以下代码实现将TreeNode显示到TreeView中: ```csharp // 创建一个TreeNode对象 TreeNode treeNode = new TreeNode("节点文本"); // 检查TreeView上是否有节点 if (treeView.Nodes.Count == 0) { // treeView上没有任何节点,直接将创建的TreeNode对象添加到treeView的Nodes集合中 treeView.Nodes.Add(treeNode); } else { // treeView上已有节点,选择一个已存在的节点作为父节点 TreeNode parentNode = treeView.Nodes[0]; // 将创建的TreeNode对象添加到父节点的Nodes集合中 parentNode.Nodes.Add(treeNode); } ``` 以上是一个简单的示例,将TreeNode显示到TreeView的过程可以根据实际需求进行更复杂的操作。 ### 回答3: 将TreeNode显示到TreeView可以通过以下步骤实现: 1. 创建一个TreeView控件和一个TreeNode对象。 2. 为TreeNode对象设置其文本和其他属性,以便显示相应的信息。 3. 将TreeNode对象添加到TreeView控件的Nodes集合中。 4. 最后,将TreeView控件添加到窗体或其他容器中,以便在界面上显示出来。 示例代码如下: ```csharp // 创建一个TreeView控件和一个TreeNode对象 TreeView treeView1 = new TreeView(); TreeNode node1 = new TreeNode("节点1"); // 为TreeNode对象设置其文本和其他属性 node1.Text = "节点1"; node1.Name = "Node1"; node1.Tag = "数据1"; // 将TreeNode对象添加到TreeView控件的Nodes集合中 treeView1.Nodes.Add(node1); // 将TreeView控件添加到窗体或其他容器中 this.Controls.Add(treeView1); ``` 通过上述代码,可以将TreeNode对象显示到TreeView控件上,并在界面上显示出来。当然,可以根据实际需要添加更多的TreeNode对象来构建更复杂的TreeView控件。同时,可以根据需要进一步设置TreeNode对象的子节点、样式、图片等属性,以实现更多的显示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值