Udostępnij za pośrednictwem


TreeNode Klasa

Definicja

Reprezentuje węzeł obiektu TreeView.

public ref class TreeNode : MarshalByRefObject, ICloneable, System::Runtime::Serialization::ISerializable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))]
[System.Serializable]
public class TreeNode : MarshalByRefObject, ICloneable, System.Runtime.Serialization.ISerializable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))>]
[<System.Serializable>]
type TreeNode = class
    inherit MarshalByRefObject
    interface ICloneable
    interface ISerializable
Public Class TreeNode
Inherits MarshalByRefObject
Implements ICloneable, ISerializable
Dziedziczenie
Pochodne
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu przedstawia informacje o kliencie w kontrolce TreeView . Węzły drzewa głównego wyświetlają nazwy klientów, a węzły drzewa podrzędnego wyświetlają numery zamówień przypisanych do każdego klienta. W tym przykładzie wyświetlanych jest 1000 klientów z 15 zamówieniami. Przemalowanie TreeView obiektu jest pomijane przy użyciu BeginUpdate metod i EndUpdate , a oczekiwanie Cursor jest wyświetlane podczas TreeView tworzenia i malowania TreeNode obiektów. W tym przykładzie jest wymagany Customer obiekt, który może przechowywać kolekcję Order obiektów. Wymaga to również utworzenia wystąpienia kontrolki TreeView na obiekcie 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

Uwagi

Kolekcja Nodes przechowuje wszystkie obiekty podrzędne TreeNode przypisane do bieżącego TreeNodeobiektu . Można dodawać, usuwać lub klonować TreeNodeobiekt . Po zakończeniu tej czynności wszystkie węzły drzewa podrzędnego zostaną dodane, usunięte lub sklonowane. Każda z nich TreeNode może zawierać kolekcję innych TreeNode obiektów. Może to utrudnić ustalenie, gdzie znajdują się w TreeView iteracji w kolekcji. Aby określić lokalizację w strukturze drzewa, użyj FullPath właściwości . Ciąg FullPath można przeanalizować przy użyciu wartości ciągu, PathSeparator aby określić, gdzie zaczyna się etykieta TreeNode i kończy.

Etykieta TreeNode jest ustawiana przez jawne Text ustawienie właściwości. Alternatywą jest utworzenie węzła drzewa przy użyciu jednego z TreeNode konstruktorów, który ma parametr ciągu reprezentujący Text właściwość. Etykieta zostanie wyświetlona obok TreeNode obrazu, jeśli zostanie wyświetlona.

Aby wyświetlić obrazy obok węzłów drzewa, przypisz element ImageList do właściwości kontrolki nadrzędnej TreeView i przypisz Image element , odwołując się do ImageList jego wartości indeksu ImageList we właściwości. ImageIndex Ustaw właściwość na wartość indeksuImage, którą chcesz wyświetlić, gdy TreeNode właściwość jest w stanie niezaznaczonym. Podobnie ustaw SelectedImageIndex właściwość na wartość indeksu Image , którą chcesz wyświetlić po wybraniu TreeNode .

Wybranie określonych węzłów drzewa i iterowanie za pomocą Nodes kolekcji można osiągnąć przy użyciu następujących wartości właściwości: FirstNode, , LastNodeNextNodePrevNode, , NextVisibleNode, . PrevVisibleNode Przypisz zwrócone TreeNode przez jedną z wyżej wymienionych właściwości do TreeView.SelectedNode właściwości, aby wybrać ten węzeł drzewa w kontrolce TreeView .

Węzły drzewa można rozszerzyć, aby wyświetlić następny poziom węzłów drzewa podrzędnego. Użytkownik może rozwinąć TreeNode obiekt, naciskając przycisk plus (+) obok TreeNodeelementu , jeśli jest wyświetlany, lub możesz rozwinąć TreeNode obiekt, wywołując metodę Expand . Aby rozwinąć wszystkie poziomy węzłów drzewa podrzędnego Nodes w kolekcji, wywołaj metodę ExpandAll . Poziom podrzędny TreeNode można zwinąć, wywołując metodę Collapse , lub użytkownik może nacisnąć przycisk minus (-) obok TreeNodeelementu , jeśli zostanie wyświetlony. Możesz również wywołać metodę Toggle , aby przemieścić TreeNode między rozwiniętymi i zwiniętymi stanami.

Węzły drzewa mogą opcjonalnie wyświetlać pole wyboru. Aby wyświetlić pola wyboru, ustaw CheckBoxes właściwość właściwości TreeView na true. Właściwość jest ustawiona Checked na true wartość dla węzłów drzewa, które są w stanie sprawdzonym.

Konstruktory

TreeNode()

Inicjuje nowe wystąpienie klasy TreeNode.

TreeNode(SerializationInfo, StreamingContext)

Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonych informacji o serializacji i kontekstu.

TreeNode(String)

Inicjuje TreeNode nowe wystąpienie klasy z określonym tekstem etykiety.

TreeNode(String, Int32, Int32)

Inicjuje nowe wystąpienie TreeNode klasy z określonym tekstem etykiety i obrazami do wyświetlania, gdy węzeł drzewa jest w wybranym i niezaznaczonym stanie.

TreeNode(String, Int32, Int32, TreeNode[])

Inicjuje nowe wystąpienie TreeNode klasy z określonym tekstem etykiety, węzłami drzewa podrzędnego i obrazami do wyświetlania, gdy węzeł drzewa jest w stanie zaznaczonym i niezaznaczonym.

TreeNode(String, TreeNode[])

Inicjuje TreeNode nowe wystąpienie klasy z określonym tekstem etykiety i węzłami drzewa podrzędnego.

Właściwości

BackColor

Pobiera lub ustawia kolor tła węzła drzewa.

Bounds

Pobiera granice węzła drzewa.

Checked

Pobiera lub ustawia wartość wskazującą, czy węzeł drzewa jest w stanie sprawdzonym.

ContextMenu

Pobiera menu skrótów skojarzone z tym węzłem drzewa.

ContextMenuStrip

Pobiera lub ustawia menu skrótów skojarzone z tym węzłem drzewa.

FirstNode

Pobiera pierwszy węzeł drzewa podrzędnego w kolekcji węzłów drzewa.

ForeColor

Pobiera lub ustawia kolor pierwszego planu węzła drzewa.

FullPath

Pobiera ścieżkę z węzła drzewa głównego do bieżącego węzła drzewa.

Handle

Pobiera uchwyt węzła drzewa.

ImageIndex

Pobiera lub ustawia wartość indeksu listy obrazów wyświetlaną, gdy węzeł drzewa znajduje się w stanie niezaznaczonym.

ImageKey

Pobiera lub ustawia klucz obrazu skojarzonego z tym węzłem drzewa, gdy węzeł jest w stanie niezaznaczonym.

Index

Pobiera położenie węzła drzewa w kolekcji węzłów drzewa.

IsEditing

Pobiera wartość wskazującą, czy węzeł drzewa jest w stanie edytowalnym.

IsExpanded

Pobiera wartość wskazującą, czy węzeł drzewa jest w stanie rozwiniętym.

IsSelected

Pobiera wartość wskazującą, czy węzeł drzewa znajduje się w wybranym stanie.

IsVisible

Pobiera wartość wskazującą, czy węzeł drzewa jest widoczny, czy częściowo widoczny.

LastNode

Pobiera ostatni węzeł drzewa podrzędnego.

Level

Pobiera głębokość zera węzła drzewa w kontrolce TreeView .

Name

Pobiera lub ustawia nazwę węzła drzewa.

NextNode

Pobiera następny węzeł drzewa równorzędnego.

NextVisibleNode

Pobiera następny widoczny węzeł drzewa.

NodeFont

Pobiera lub ustawia czcionkę używaną do wyświetlania tekstu na etykiecie węzła drzewa.

Nodes

Pobiera kolekcję obiektów przypisanych TreeNode do bieżącego węzła drzewa.

Parent

Pobiera węzeł drzewa nadrzędnego bieżącego węzła drzewa.

PrevNode

Pobiera poprzedni węzeł drzewa równorzędnego.

PrevVisibleNode

Pobiera poprzedni widoczny węzeł drzewa.

SelectedImageIndex

Pobiera lub ustawia wartość indeksu listy obrazów obrazu wyświetlanego, gdy węzeł drzewa znajduje się w wybranym stanie.

SelectedImageKey

Pobiera lub ustawia klucz obrazu wyświetlanego w węźle drzewa, gdy jest w wybranym stanie.

StateImageIndex

Pobiera lub ustawia indeks obrazu, który jest używany do wskazywania stanu TreeNode , gdy obiekt nadrzędny TreeView ma właściwość CheckBoxes ustawioną na false.

StateImageKey

Pobiera lub ustawia klucz obrazu, który jest używany do wskazywania stanu TreeNode elementu nadrzędnego, gdy obiekt nadrzędny TreeView ma właściwość CheckBoxes ustawioną na falsewartość .

Tag

Pobiera lub ustawia obiekt zawierający dane dotyczące węzła drzewa.

Text

Pobiera lub ustawia tekst wyświetlany na etykiecie węzła drzewa.

ToolTipText

Pobiera lub ustawia tekst wyświetlany po umieszczeniu wskaźnika myszy na obiekcie TreeNode.

TreeView

Pobiera widok drzewa nadrzędnego, do którego jest przypisany węzeł drzewa.

Metody

BeginEdit()

Inicjuje edycję etykiety węzła drzewa.

Clone()

Kopiuje węzeł drzewa i całe poddrzewo rooted w tym węźle drzewa.

Collapse()

Zwija węzeł drzewa.

Collapse(Boolean)

Zwija element TreeNode i opcjonalnie zwija swoje elementy podrzędne.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Deserialize(SerializationInfo, StreamingContext)

Ładuje stan TreeNode określonego SerializationInfoelementu .

EndEdit(Boolean)

Kończy edycję etykiety węzła drzewa.

EnsureVisible()

Gwarantuje, że węzeł drzewa jest widoczny, rozwija węzły drzewa i przewija w razie potrzeby kontrolkę widoku drzewa.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Expand()

Rozwija węzeł drzewa.

ExpandAll()

Rozwija wszystkie węzły drzewa podrzędnego.

FromHandle(TreeView, IntPtr)

Zwraca węzeł drzewa z określonym uchwytem i przypisanym do określonej kontrolki widoku drzewa.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetNodeCount(Boolean)

Zwraca liczbę węzłów drzewa podrzędnego.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
Remove()

Usuwa bieżący węzeł drzewa z kontrolki widoku drzewa.

Serialize(SerializationInfo, StreamingContext)

Zapisuje stan określonego TreeNodeSerializationInfoelementu .

Toggle()

Przełącza węzeł drzewa do stanu rozwiniętego lub zwiniętego.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

Jawne implementacje interfejsu

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Wypełnia obiekt informacji o serializacji danymi wymaganymi do serializacji TreeNode.

Dotyczy

Zobacz też