TreeNodeCollection 类

定义

表示 TreeNode 控件中 TreeView 对象的集合。 此类不能被继承。

public ref class TreeNodeCollection sealed : System::Collections::ICollection, System::Web::UI::IStateManager
public sealed class TreeNodeCollection : System.Collections.ICollection, System.Web.UI.IStateManager
type TreeNodeCollection = class
    interface ICollection
    interface IEnumerable
    interface IStateManager
Public NotInheritable Class TreeNodeCollection
Implements ICollection, IStateManager
继承
TreeNodeCollection
实现

示例

以下示例演示如何以编程方式向节点添加节点并将其从中删除 TreeNodeCollection。 请注意, Nodes 属性 ChildNodes 返回对象 TreeNodeCollection


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {

    if (!IsPostBack)
    {

      // Use the Add and Remove methods to programmatically 
      // remove the Appendix C node and replace it with a new 
      // node. 
      LinksTreeView.Nodes.Remove(LinksTreeView.Nodes[3]);
      LinksTreeView.Nodes.Add(new TreeNode("New Appendix C"));

      // Use the AddAt and RemoveAt methods to programmatically 
      // remove the Chapter One node and replace it with a new node.
      LinksTreeView.Nodes[0].ChildNodes.RemoveAt(0);
      LinksTreeView.Nodes[0].ChildNodes.AddAt(0, new TreeNode("New Chapter One"));

      // Use the Clear method to remove all the child nodes of the 
      // Chapter Two node.
      LinksTreeView.Nodes[0].ChildNodes[1].ChildNodes.Clear();

    }

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeNodeCollection Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeNodeCollection Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Names= "Arial"
        ForeColor="Blue"
        runat="server">
         
        <LevelStyles>
        
          <asp:TreeNodeStyle ChildNodesPadding="10" 
            Font-Bold="true" 
            Font-Size="12pt" 
            ForeColor="DarkGreen"/>
          <asp:TreeNodeStyle ChildNodesPadding="5" 
            Font-Bold="true" 
            Font-Size="10pt"/>
          <asp:TreeNodeStyle ChildNodesPadding="5" 
            Font-UnderLine="true" 
            Font-Size="10pt"/>
          <asp:TreeNodeStyle ChildNodesPadding="10" 
            Font-Size="8pt"/>
             
        </LevelStyles>
         
        <Nodes>
        
          <asp:TreeNode Text="Table of Contents"
            Expanded="true">
             
            <asp:TreeNode Text="Chapter One">
            
              <asp:TreeNode Text="Section 1.0">
              
                <asp:TreeNode Text="Topic 1.0.1"/>
                <asp:TreeNode Text="Topic 1.0.2"/>
                <asp:TreeNode Text="Topic 1.0.3"/>
              
              </asp:TreeNode>
              
              <asp:TreeNode Text="Section 1.1">
              
                <asp:TreeNode Text="Topic 1.1.1"/>
                <asp:TreeNode Text="Topic 1.1.2"/>
                <asp:TreeNode Text="Topic 1.1.3"/>
                <asp:TreeNode Text="Topic 1.1.4"/>
              
              </asp:TreeNode>
            
            </asp:TreeNode>
            
            <asp:TreeNode Text="Chapter Two">
            
              <asp:TreeNode Text="Section 2.0">
              
                <asp:TreeNode Text="Topic 2.0.1"/>
                <asp:TreeNode Text="Topic 2.0.2"/>
              
              </asp:TreeNode>
            
            </asp:TreeNode>
            
          </asp:TreeNode>
          
          <asp:TreeNode Text="Appendix A" />
          <asp:TreeNode Text="Appendix B" />
          <asp:TreeNode Text="Appendix C" />
        
        </Nodes>
        
      </asp:TreeView>

    </form>
  </body>
</html>

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    If Not IsPostBack Then

      ' Use the Add and Remove methods to programmatically 
      ' remove the Appendix C node and replace it with a new 
      ' node. 
      LinksTreeView.Nodes.Remove(LinksTreeView.Nodes(3))
      LinksTreeView.Nodes.Add(New TreeNode("New Appendix C"))

      ' Use the AddAt and RemoveAt methods to programmatically 
      ' remove the Chapter One node and replace it with a new node.
      LinksTreeView.Nodes(0).ChildNodes.RemoveAt(0)
      LinksTreeView.Nodes(0).ChildNodes.AddAt(0, New TreeNode("New Chapter One"))

      ' Use the Clear method to remove all the child nodes of the 
      ' Chapter Two node.
      LinksTreeView.Nodes(0).ChildNodes(1).ChildNodes.Clear()

    End If

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeNodeCollection Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeNodeCollection Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Names= "Arial"
        ForeColor="Blue"
        runat="server">
         
        <LevelStyles>
        
          <asp:TreeNodeStyle ChildNodesPadding="10" 
            Font-Bold="true" 
            Font-Size="12pt" 
            ForeColor="DarkGreen"/>
          <asp:TreeNodeStyle ChildNodesPadding="5" 
            Font-Bold="true" 
            Font-Size="10pt"/>
          <asp:TreeNodeStyle ChildNodesPadding="5" 
            Font-UnderLine="true" 
            Font-Size="10pt"/>
          <asp:TreeNodeStyle ChildNodesPadding="10" 
            Font-Size="8pt"/>
             
        </LevelStyles>
         
        <Nodes>
        
          <asp:TreeNode Text="Table of Contents"
            Expanded="true">
             
            <asp:TreeNode Text="Chapter One">
            
              <asp:TreeNode Text="Section 1.0">
              
                <asp:TreeNode Text="Topic 1.0.1"/>
                <asp:TreeNode Text="Topic 1.0.2"/>
                <asp:TreeNode Text="Topic 1.0.3"/>
              
              </asp:TreeNode>
              
              <asp:TreeNode Text="Section 1.1">
              
                <asp:TreeNode Text="Topic 1.1.1"/>
                <asp:TreeNode Text="Topic 1.1.2"/>
                <asp:TreeNode Text="Topic 1.1.3"/>
                <asp:TreeNode Text="Topic 1.1.4"/>
              
              </asp:TreeNode>
            
            </asp:TreeNode>
            
            <asp:TreeNode Text="Chapter Two">
            
              <asp:TreeNode Text="Section 2.0">
              
                <asp:TreeNode Text="Topic 2.0.1"/>
                <asp:TreeNode Text="Topic 2.0.2"/>
              
              </asp:TreeNode>
            
            </asp:TreeNode>
            
          </asp:TreeNode>
          
          <asp:TreeNode Text="Appendix A" />
          <asp:TreeNode Text="Appendix B" />
          <asp:TreeNode Text="Appendix C" />
        
        </Nodes>
        
      </asp:TreeView>

    </form>
  </body>
</html>

注解

TreeNodeCollection类用于在控件中TreeView存储和管理对象的集合TreeNode。 该 TreeView 控件在其两个属性中使用 TreeNodeCollection 类。 它将根节点 Nodes 存储在属性中,以及属性中的 CheckedNodes 选定节点。 该 TreeNodeCollection 集合还用于 ChildNodes 属性以存储子节点 ((如果有) )。

TreeNodeCollection 类支持多种访问集合中项的方法:

  • Item[]使用索引器直接在特定的从零开始的索引处检索TreeNode对象。

  • 使用该方法 GetEnumerator 创建可用于循环访问集合的枚举器。

  • 使用 foreach (C#) 或For Each (Visual Basic) 循环访问集合。

  • 使用该方法 CopyTo 将集合的内容复制到对象 Array 中。

可以通过添加和删除TreeNode对象以编程方式管理TreeNodeCollection该对象。 若要将节点添加到集合,请使用 AddAddAt 方法。 若要从集合中删除节点,请使用RemoveRemoveAtClear方法。

备注

TreeView当控件绑定到数据源时,每次绑定发生时,Nodes都会自动填充集合ChildNodes。 绑定之间的集合的任何更改都将丢失。 若要保留这些更改,请更新数据源或每次绑定时手动重新生成集合。

包含 TreeNodeCollection 属性和方法,可用于检索有关集合本身的信息。 若要了解集合中的项数,请使用该 Count 属性。 如果要确定集合是否包含特定 TreeNode 对象,请使用 Contains 该方法。 若要获取集合中对象的索引 TreeNode ,请使用 IndexOf 该方法。

构造函数

TreeNodeCollection()

使用默认值初始化 TreeNodeCollection 类的新实例。

TreeNodeCollection(TreeNode)

使用指定的父节点(或所有者)初始化 TreeNodeCollection 类的新实例。

属性

Count

获取 TreeNodeCollection 对象中的项数。

IsSynchronized

获取一个值,该值指示是否同步对 TreeNodeCollection 的访问(线程安全)。

Item[Int32]

获取 TreeNode 对象中指定索引处的 TreeNodeCollection 对象。

SyncRoot

获取一个对象,该对象可用于同步对 TreeNodeCollection 对象的访问。

方法

Add(TreeNode)

将指定的 TreeNode 对象追加到 TreeNodeCollection 对象的结尾。

AddAt(Int32, TreeNode)

将指定的 TreeNode 对象插入到 TreeNodeCollection 对象中的指定索引位置。

Clear()

清空 TreeNodeCollection 对象。

Contains(TreeNode)

确定指定的 TreeNode 对象是否在集合中。

CopyTo(TreeNode[], Int32)

从目标数组的指定索引开始,将 TreeNodeCollection 对象中的所有项复制到 TreeNode 对象的一维兼容数组。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetEnumerator()

返回一个可用于循环访问 TreeNodeCollection 对象的枚举数。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
IndexOf(TreeNode)

确定指定的 TreeNode 对象的索引。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
Remove(TreeNode)

TreeNode 对象中移除指定的 TreeNodeCollection 对象。

RemoveAt(Int32)

TreeNode 对象中移除指定索引位置的 TreeNodeCollection 对象。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

ICollection.CopyTo(Array, Int32)

从目标数组的指定索引开始,将 TreeNodeCollection 对象中的所有项复制到兼容的一维 Array 中。

IStateManager.IsTrackingViewState

获取一个值,该值指示 TreeNodeCollection 对象是否保存对其视图状态的更改。

IStateManager.LoadViewState(Object)

加载 TreeNodeCollection 对象先前保存的视图状态。

IStateManager.SaveViewState()

将视图状态的更改保存到 Object

IStateManager.TrackViewState()

指示 TreeNodeCollection 跟踪其视图状态的更改。

扩展方法

Cast<TResult>(IEnumerable)

IEnumerable 的元素强制转换为指定的类型。

OfType<TResult>(IEnumerable)

根据指定类型筛选 IEnumerable 的元素。

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

适用于

另请参阅