TreeNode Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
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 |
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. |