TreeNode Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Knoten eines .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]
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)]
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
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))>]
[<System.Serializable>]
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)>]
type TreeNode = class
inherit MarshalByRefObject
interface ICloneable
interface ISerializable
Public Class TreeNode
Inherits MarshalByRefObject
Implements ICloneable, ISerializable
- Vererbung
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel werden Kundeninformationen in einem TreeView Steuerelement angezeigt. Die Stammstrukturknoten zeigen Kundennamen an, und die untergeordneten Strukturknoten zeigen die Bestellnummern an, die jedem Kunden zugewiesen sind. In diesem Beispiel werden jeweils 1.000 Kunden mit jeweils 15 Bestellungen angezeigt. Die Aktualisierung der TreeView Elemente wird mithilfe der BeginUpdate Methoden EndUpdate unterdrückt, und eine Wartezeit Cursor wird angezeigt, während die TreeViewTreeNode Objekte erstellt und strichen. Dieses Beispiel erfordert, dass Sie über ein Customer Objekt verfügen, das eine Auflistung von Order Objekten enthalten kann. Außerdem müssen Sie eine Instanz eines TreeView Steuerelements für ein Steuerelement Formerstellt haben.
// 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
Hinweise
Die Nodes Auflistung enthält alle untergeordneten TreeNode Objekte, die dem aktuellen TreeNodeObjekt zugewiesen sind. Sie können ein TreeNodeObjekt hinzufügen, entfernen oder klonen. Wenn Sie dies tun, werden alle untergeordneten Strukturknoten hinzugefügt, entfernt oder geklont. Jede TreeNode kann eine Auflistung anderer TreeNode Objekte enthalten. Dies kann es schwierig machen, zu bestimmen, wo Sie sich beim Durchlaufen der Sammlung befinden TreeView . Verwenden Sie die FullPath Eigenschaft, um Ihre Position in einer Struktur zu bestimmen. Die FullPath Zeichenfolge kann mithilfe des PathSeparator Zeichenfolgenwerts analysiert werden, um zu bestimmen, wo eine TreeNode Beschriftung beginnt und endet.
Die TreeNode Bezeichnung wird festgelegt, indem die Text Eigenschaft explizit festgelegt wird. Die Alternative besteht darin, den Strukturknoten mithilfe eines der TreeNode Konstruktoren zu erstellen, die über einen Zeichenfolgenparameter verfügen, der die Text Eigenschaft darstellt. Die Beschriftung wird neben dem TreeNode Bild angezeigt, wenn eine angezeigt wird.
Um Bilder neben den Strukturknoten anzuzeigen, weisen Sie der Eigenschaft des übergeordneten TreeView Steuerelements eine ImageList zuImageList, und weisen Sie eine Image zu, indem Sie auf den Indexwert in der ImageList Eigenschaft verweisen. Legen Sie die ImageIndex Eigenschaft auf den Indexwert der Image anzuzeigenden Eigenschaft fest, wenn sie TreeNode sich in einem nicht ausgewählten Zustand befindet. Legen Sie die SelectedImageIndex Eigenschaft ebenfalls auf den Indexwert des Image anzuzeigenden Werts fest, wenn die TreeNode Option ausgewählt ist.
Die Auswahl bestimmter Strukturknoten und das Durchlaufen der Auflistung können mithilfe der Nodes folgenden Eigenschaftswerte erreicht werden: FirstNode, , , LastNode, NextNodePrevNode, , NextVisibleNode. PrevVisibleNode Weisen Sie der TreeView.SelectedNode Eigenschaft die TreeNode von einer der oben genannten Eigenschaften zurückgegebenen Eigenschaften zu, um diesen Strukturknoten im TreeView Steuerelement auszuwählen.
Strukturknoten können erweitert werden, um die nächste Ebene untergeordneter Strukturknoten anzuzeigen. Der Benutzer kann die TreeNode Schaltfläche erweitern, indem er neben der Plustaste (+) neben der TreeNodeangezeigt wird, oder Sie können die TreeNode Methode erweitern, indem Sie die Expand Methode aufrufen. Rufen Sie die ExpandAll Methode auf, um alle untergeordneten Strukturknotenebenen in der Nodes Auflistung zu erweitern. Sie können die untergeordnete TreeNode Ebene reduzieren, indem Sie die Collapse Methode aufrufen, oder der Benutzer kann neben der Schaltfläche minus (-) neben dem TreeNodeAngezeigten drücken. Sie können die Toggle Methode auch aufrufen, um den TreeNode erweiterten und reduzierten Zustand zu wechseln.
Strukturknoten können optional ein Kontrollkästchen anzeigen. Um die Kontrollkästchen anzuzeigen, legen Sie die CheckBoxes Eigenschaft des Werts TreeView auf .true Die Checked Eigenschaft ist für Strukturknoten festgelegt true , die sich in einem überprüften Zustand befinden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| TreeNode() |
Initialisiert eine neue Instanz der TreeNode-Klasse. |
| TreeNode(SerializationInfo, StreamingContext) |
Initialisiert eine neue Instanz der Klasse mithilfe der TreeNode angegebenen Serialisierungsinformationen und des angegebenen Kontexts. |
| TreeNode(String, Int32, Int32, TreeNode[]) |
Initialisiert eine neue Instanz der TreeNode Klasse mit dem angegebenen Beschriftungstext, untergeordneten Strukturknoten und Bildern, die angezeigt werden sollen, wenn sich der Strukturknoten in einem ausgewählten und nicht ausgewählten Zustand befindet. |
| TreeNode(String, Int32, Int32) |
Initialisiert eine neue Instanz der TreeNode Klasse mit dem angegebenen Beschriftungstext und Bildern, die angezeigt werden sollen, wenn sich der Strukturknoten in einem ausgewählten und nicht ausgewählten Zustand befindet. |
| TreeNode(String, TreeNode[]) |
Initialisiert eine neue Instanz der TreeNode Klasse mit dem angegebenen Beschriftungstext und untergeordneten Strukturknoten. |
| TreeNode(String) |
Initialisiert eine neue Instanz der TreeNode Klasse mit dem angegebenen Beschriftungstext. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| BackColor |
Dient zum Abrufen oder Festlegen der Hintergrundfarbe des Strukturknotens. |
| Bounds |
Ruft die Grenzen des Strukturknotens ab. |
| Checked |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob sich der Strukturknoten in einem überprüften Zustand befindet. |
| ContextMenu |
Ruft das Kontextmenü ab, das diesem Strukturknoten zugeordnet ist. |
| ContextMenuStrip |
Dient zum Abrufen oder Festlegen des Kontextmenüs, das diesem Strukturknoten zugeordnet ist. |
| FirstNode |
Ruft den ersten untergeordneten Strukturknoten in der Strukturknotenauflistung ab. |
| ForeColor |
Ruft die Vordergrundfarbe des Strukturknotens ab oder legt sie fest. |
| FullPath |
Ruft den Pfad vom Stammstrukturknoten zum aktuellen Strukturknoten ab. |
| Handle |
Ruft das Handle des Strukturknotens ab. |
| ImageIndex |
Ruft den Indexwert der Bildliste des Bilds ab, das angezeigt wird, wenn sich der Strukturknoten im nicht ausgewählten Zustand befindet, oder legt den Indexwert der Bildliste fest. |
| ImageKey |
Dient zum Abrufen oder Festlegen des Schlüssels für das Bild, das diesem Strukturknoten zugeordnet ist, wenn sich der Knoten in einem nicht ausgewählten Zustand befindet. |
| Index |
Ruft die Position des Strukturknotens in der Strukturknotenauflistung ab. |
| IsEditing |
Ruft einen Wert ab, der angibt, ob sich der Strukturknoten in einem bearbeitbaren Zustand befindet. |
| IsExpanded |
Ruft einen Wert ab, der angibt, ob sich der Strukturknoten im erweiterten Zustand befindet. |
| IsSelected |
Ruft einen Wert ab, der angibt, ob sich der Strukturknoten im ausgewählten Zustand befindet. |
| IsVisible |
Ruft einen Wert ab, der angibt, ob der Strukturknoten sichtbar oder teilweise sichtbar ist. |
| LastNode |
Ruft den letzten untergeordneten Strukturknoten ab. |
| Level |
Ruft die nullbasierte Tiefe des Strukturknotens TreeView im Steuerelement ab. |
| Name |
Dient zum Abrufen oder Festlegen des Namens des Strukturknotens. |
| NextNode |
Ruft den nächsten gleichgeordneten Baumknoten ab. |
| NextVisibleNode |
Ruft den nächsten sichtbaren Strukturknoten ab. |
| NodeFont |
Ruft die Schriftart ab, die zum Anzeigen des Texts auf der Strukturknotenbezeichnung verwendet wird, oder legt sie fest. |
| Nodes |
Ruft die Auflistung von TreeNode Objekten ab, die dem aktuellen Strukturknoten zugewiesen sind. |
| Parent |
Ruft den übergeordneten Strukturknoten des aktuellen Strukturknotens ab. |
| PrevNode |
Ruft den vorherigen gleichgeordneten Baumknoten ab. |
| PrevVisibleNode |
Ruft den vorherigen sichtbaren Strukturknoten ab. |
| SelectedImageIndex |
Ruft den Indexwert der Bildliste des Bilds ab, das angezeigt wird, wenn sich der Strukturknoten im ausgewählten Zustand befindet, oder legt diesen fest. |
| SelectedImageKey |
Ruft den Schlüssel des Bilds ab, das im Strukturknoten angezeigt wird, wenn es sich in einem ausgewählten Zustand befindet, oder legt ihn fest. |
| StateImageIndex |
Dient zum Abrufen oder Festlegen des Index des Bilds, das verwendet wird, um den Status des TreeNode Objekts anzugeben, wenn das übergeordnete Element TreeView seine CheckBoxes Eigenschaft auf festgelegt |
| StateImageKey |
Dient zum Abrufen oder Festlegen des Schlüssels des Bilds, das verwendet wird, um den Status des TreeNode Objekts anzugeben, wenn das übergeordnete Element TreeView seine CheckBoxes Eigenschaft auf |
| Tag |
Dient zum Abrufen oder Festlegen des Objekts, das Daten zum Strukturknoten enthält. |
| Text |
Ruft den Text ab, der in der Beschriftung des Strukturknotens angezeigt wird, oder legt den Text fest. |
| ToolTipText |
Dient zum Abrufen oder Festlegen des Texts, der angezeigt wird, wenn der Mauszeiger auf ein TreeNode. |
| TreeView |
Ruft die übergeordnete Strukturansicht ab, der der Strukturknoten zugewiesen ist. |
Methoden
| Name | Beschreibung |
|---|---|
| BeginEdit() |
Initiiert die Bearbeitung der Strukturknotenbezeichnung. |
| Clone() |
Kopiert den Strukturknoten und die gesamte Unterstruktur, die an diesem Strukturknoten verwurzelt ist. |
| Collapse() |
Reduziert den Strukturknoten. |
| Collapse(Boolean) |
Reduziert die TreeNode untergeordneten Elemente und reduziert sie optional. |
| CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
| Deserialize(SerializationInfo, StreamingContext) |
Lädt den Zustand des TreeNode aus dem angegebenen SerializationInfo. |
| EndEdit(Boolean) |
Beendet die Bearbeitung der Strukturknotenbezeichnung. |
| EnsureVisible() |
Stellt sicher, dass der Strukturknoten sichtbar ist, Strukturknoten erweitert und das Steuerelement für die Strukturansicht bei Bedarf scrollen. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| Expand() |
Erweitert den Strukturknoten. |
| ExpandAll() |
Erweitert alle untergeordneten Strukturknoten. |
| FromHandle(TreeView, IntPtr) |
Gibt den Strukturknoten mit dem angegebenen Handle zurück und wird dem angegebenen Strukturansichtssteuerelement zugewiesen. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
| GetNodeCount(Boolean) |
Gibt die Anzahl der untergeordneten Strukturknoten zurück. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts. (Geerbt von MarshalByRefObject) |
| Remove() |
Entfernt den aktuellen Strukturknoten aus dem Strukturansichtssteuerelement. |
| Serialize(SerializationInfo, StreamingContext) |
Speichert den Zustand des angegebenen Werts TreeNodeSerializationInfo. |
| Toggle() |
Schaltet den Strukturknoten in den erweiterten oder reduzierten Zustand um. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Füllt ein Serialisierungsinformationsobjekt mit den Daten auf, die zum Serialisieren des TreeNodeObjekts erforderlich sind. |