다음을 통해 공유


TreeNodeCollection 클래스

정의

TreeNode 개체의 컬렉션을 나타냅니다.

public ref class TreeNodeCollection : System::Collections::IList
public class TreeNodeCollection : System.Collections.IList
type TreeNodeCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class TreeNodeCollection
Implements IList
상속
TreeNodeCollection
구현

예제

다음 코드 예제에서는 컨트롤에 고객 정보를 표시합니다 TreeView . 루트 트리 노드는 고객 이름을 표시하고 자식 트리 노드는 각 고객에게 할당된 주문 번호를 표시합니다. 이 예제에서는 1,000명의 고객이 각각 15개의 주문으로 표시됩니다. 개체를 만들고 그리는 동안 TreeView 에는 메서드 및 Cursor EndUpdate 메서드를 사용하여 BeginUpdate 다시 그리 TreeView 기를 표시하지 TreeNode 않습니다. 이 예제에서는 Customer 개체 컬렉션을 Order 보유할 수 있는 개체가 있어야 합니다. 또한 에 컨트롤의 인스턴스를 TreeView 만들어야 합니다 Form.

// The basic Customer class.
ref class Customer: public System::Object
{
private:
   String^ custName;

protected:
   ArrayList^ custOrders;

public:
   Customer( String^ customername )
   {
      custName = "";
      custOrders = gcnew ArrayList;
      this->custName = customername;
   }


   property String^ CustomerName 
   {
      String^ get()
      {
         return this->custName;
      }

      void set( String^ value )
      {
         this->custName = value;
      }

   }

   property ArrayList^ CustomerOrders 
   {
      ArrayList^ get()
      {
         return this->custOrders;
      }

   }

};


// End Customer class
// The basic customer Order class.
ref class Order: public System::Object
{
private:
   String^ ordID;

public:
   Order( String^ orderid )
   {
      ordID = "";
      this->ordID = orderid;
   }


   property String^ OrderID 
   {
      String^ get()
      {
         return this->ordID;
      }

      void set( String^ value )
      {
         this->ordID = value;
      }

   }

};
// End Order class



void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for ( int x = 0; x < 1000; x++ )
   {
      customerArray->Add( gcnew Customer( "Customer " + x ) );
   }
   
   // Add orders to each Customer object in the ArrayList.
   IEnumerator^ myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer1 = safe_cast<Customer^>(myEnum->Current);
      for ( int y = 0; y < 15; y++ )
      {
         customer1->CustomerOrders->Add( gcnew Order( "Order " + y ) );
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   ::Cursor::Current = gcnew System::Windows::Forms::Cursor( "MyWait.cur" );
   
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1->BeginUpdate();
   
   // Clear the TreeView each time the method is called.
   treeView1->Nodes->Clear();
   
   // Add a root TreeNode for each Customer object in the ArrayList.
   myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer2 = safe_cast<Customer^>(myEnum->Current);
      treeView1->Nodes->Add( gcnew TreeNode( customer2->CustomerName ) );
      
      // Add a child treenode for each Order object in the current Customer object.
      IEnumerator^ myEnum = customer2->CustomerOrders->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Order^ order1 = safe_cast<Order^>(myEnum->Current);
         treeView1->Nodes[ customerArray->IndexOf( customer2 ) ]->Nodes->Add( gcnew TreeNode( customer2->CustomerName + "." + order1->OrderID ) );
      }
   }
   
   // Reset the cursor to the default for all controls.
   ::Cursor::Current = Cursors::Default;
   
   // Begin repainting the TreeView.
   treeView1->EndUpdate();
}

// The basic Customer class.
public class Customer : System.Object
{
   private string custName = "";
   protected ArrayList custOrders = new ArrayList();

   public Customer(string customername)
   {
      this.custName = customername;
   }

   public string CustomerName
   {      
      get{return this.custName;}
      set{this.custName = value;}
   }

   public ArrayList CustomerOrders 
   {
      get{return this.custOrders;}
   }
} // End Customer class 

// The basic customer Order class.
public class Order : System.Object
{
   private string ordID = "";

   public Order(string orderid)
   {
      this.ordID = orderid;
   }

   public string OrderID
   {      
      get{return this.ordID;}
      set{this.ordID = value;}
   }
} // End Order class

// Create a new ArrayList to hold the Customer objects.
private ArrayList customerArray = new ArrayList(); 

private void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for(int x=0; x<1000; x++)
   {
      customerArray.Add(new Customer("Customer" + x.ToString()));
   }

   // Add orders to each Customer object in the ArrayList.
   foreach(Customer customer1 in customerArray)
   {
      for(int y=0; y<15; y++)
      {
         customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));    
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = new Cursor("MyWait.cur");
        
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate();

   // Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear();

   // Add a root TreeNode for each Customer object in the ArrayList.
   foreach(Customer customer2 in customerArray)
   {
      treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
          
      // Add a child treenode for each Order object in the current Customer object.
      foreach(Order order1 in customer2.CustomerOrders)
      {
         treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
           new TreeNode(customer2.CustomerName + "." + order1.OrderID));
      }
   }

   // Reset the cursor to the default for all controls.
   Cursor.Current = Cursors.Default;

   // Begin repainting the TreeView.
   treeView1.EndUpdate();
}
Public Class Customer
   Inherits [Object]
   Private custName As String = ""
   Friend custOrders As New ArrayList()

   Public Sub New(ByVal customername As String)
      Me.custName = customername
   End Sub

   Public Property CustomerName() As String
      Get
         Return Me.custName
      End Get
      Set(ByVal Value As String)
         Me.custName = Value
      End Set
   End Property

   Public ReadOnly Property CustomerOrders() As ArrayList
      Get
         Return Me.custOrders
      End Get
   End Property
End Class


Public Class Order
   Inherits [Object]
   Private ordID As String

   Public Sub New(ByVal orderid As String)
      Me.ordID = orderid
   End Sub

   Public Property OrderID() As String
      Get
         Return Me.ordID
      End Get
      Set(ByVal Value As String)
         Me.ordID = Value
      End Set
   End Property
End Class

' Create a new ArrayList to hold the Customer objects.
Private customerArray As New ArrayList()

Private Sub FillMyTreeView()
   ' Add customers to the ArrayList of Customer objects.
   Dim x As Integer
   For x = 0 To 999
      customerArray.Add(New Customer("Customer" + x.ToString()))
   Next x

   ' Add orders to each Customer object in the ArrayList.
   Dim customer1 As Customer
   For Each customer1 In customerArray
      Dim y As Integer
      For y = 0 To 14
         customer1.CustomerOrders.Add(New Order("Order" + y.ToString()))
      Next y
   Next customer1

   ' Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = New Cursor("MyWait.cur")

   ' Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate()

   ' Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear()

   ' Add a root TreeNode for each Customer object in the ArrayList.
   Dim customer2 As Customer
   For Each customer2 In customerArray
      treeView1.Nodes.Add(New TreeNode(customer2.CustomerName))

      ' Add a child TreeNode for each Order object in the current Customer object.
      Dim order1 As Order
      For Each order1 In customer2.CustomerOrders
         treeView1.Nodes(customerArray.IndexOf(customer2)).Nodes.Add( _
    New TreeNode(customer2.CustomerName + "." + order1.OrderID))
      Next order1
   Next customer2

   ' Reset the cursor to the default for all controls.
   Cursor.Current = System.Windows.Forms.Cursors.Default

   ' Begin repainting the TreeView.
   treeView1.EndUpdate()
End Sub

설명

Add, RemoveRemoveAt 메서드를 사용하면 컬렉션에서 개별 트리 노드를 추가하고 제거할 수 있습니다.

참고

컬렉션을 열거하고 노드를 제거하는 것은 지원되지 않습니다.

또는 Clear 메서드를 AddRange 사용하여 컬렉션에서 모든 트리 노드를 추가하거나 제거할 수도 있습니다.

클래스는 클래스에서 상속할 TreeNodeCollection 수 없습니다.

속성

Count

컬렉션에 있는 TreeNode 개체의 총수를 가져옵니다.

IsReadOnly

컬렉션이 읽기 전용인지를 나타내는 값을 가져옵니다.

Item[Int32]

컬렉션의 지정한 인덱싱된 위치에 있는 TreeNode를 가져오거나 설정합니다.

Item[String]

지정된 키가 있는 트리 노드를 컬렉션에서 가져옵니다.

메서드

Add(String)

현재 트리 노드 컬렉션의 끝에 지정된 레이블 텍스트를 사용하여 새 트리 노드를 추가합니다.

Add(String, String)

지정된 키 및 텍스트가 있는 트리 노드를 새로 만들어 컬렉션에 추가합니다.

Add(String, String, Int32)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션에 추가합니다.

Add(String, String, Int32, Int32)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션에 추가합니다.

Add(String, String, String)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션에 추가합니다.

Add(String, String, String, String)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션에 추가합니다.

Add(TreeNode)

이전에 만든 트리 노드를 트리 노드 컬렉션 끝에 추가합니다.

AddRange(TreeNode[])

이전에 만든 트리 노드의 배열을 컬렉션에 추가합니다.

Clear()

컬렉션에서 트리 노드를 모두 제거합니다.

Contains(TreeNode)

지정된 트리 노드가 컬렉션의 멤버인지 확인합니다.

ContainsKey(String)

지정된 키가 있는 트리 노드가 컬렉션에 있는지 여부를 확인합니다.

CopyTo(Array, Int32)

배열 내의 지정된 위치에서 기존 배열로 전체 컬렉션을 복사합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Find(String, Boolean)

지정된 키가 있는 트리 노드를 찾고 선택적으로 하위 노드를 검색합니다.

GetEnumerator()

트리 노드 컬렉션 전체에서 반복하는 데 사용할 수 있는 열거자를 반환합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IndexOf(TreeNode)

컬렉션에 있는 지정된 트리 노드의 인덱스를 반환합니다.

IndexOfKey(String)

지정된 키가 있는 트리 노드 중 맨 처음 발견된 트리 노드의 인덱스를 반환합니다.

Insert(Int32, String)

지정된 텍스트가 있는 트리 노드를 만들어 지정된 인덱스에 삽입합니다.

Insert(Int32, String, String)

지정된 텍스트 및 키가 있는 트리 노드를 만들어 컬렉션에 삽입합니다.

Insert(Int32, String, String, Int32)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션의 지정된 인덱스에 삽입합니다.

Insert(Int32, String, String, Int32, Int32)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션의 지정된 인덱스에 삽입합니다.

Insert(Int32, String, String, String)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션의 지정된 인덱스에 삽입합니다.

Insert(Int32, String, String, String, String)

지정된 키, 텍스트 및 이미지가 있는 트리 노드를 만들어 컬렉션의 지정된 인덱스에 삽입합니다.

Insert(Int32, TreeNode)

기존 트리 노드를 트리 노드 컬렉션의 지정된 위치에 삽입합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Remove(TreeNode)

트리 노드 컬렉션에서 지정된 트리 노드를 제거합니다.

RemoveAt(Int32)

트리 노드 컬렉션에서 지정된 인덱스의 트리 노드를 제거합니다.

RemoveByKey(String)

지정된 키가 있는 트리 노드를 컬렉션에서 제거합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICollection.IsSynchronized

해당 컬렉션에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지를 나타내는 값을 가져옵니다.

ICollection.SyncRoot

컬렉션에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.

IList.Add(Object)

개체를 트리 노드 컬렉션의 끝에 추가합니다.

IList.Contains(Object)

지정된 트리 노드가 컬렉션의 멤버인지 확인합니다.

IList.IndexOf(Object)

컬렉션에 있는 지정된 트리 노드의 인덱스를 반환합니다.

IList.Insert(Int32, Object)

기존 트리 노드를 지정된 위치의 트리 노드 컬렉션에 삽입합니다.

IList.IsFixedSize

트리 노드 컬렉션의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.

IList.Item[Int32]

컬렉션의 지정된 인덱스에 있는 트리 노드를 가져오거나 설정합니다.

IList.Remove(Object)

트리 노드 컬렉션에서 지정된 트리 노드를 제거합니다.

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.

적용 대상

추가 정보