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 einer TreeView dar.
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
- Vererbung
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel werden Kundeninformationen in einem TreeView Steuerelement angezeigt. Die Stammbaumknoten zeigen Kundennamen an, und die untergeordneten Strukturknoten zeigen die Bestellnummern an, die jedem Kunden zugewiesen sind. In diesem Beispiel werden 1.000 Kunden mit jeweils 15 Bestellungen angezeigt. Die Neulackierung von TreeView wird mit den BeginUpdate Methoden und EndUpdate unterdrückt, und es wird eine Wartezeit Cursor angezeigt, während die TreeView Objekte erstellt und malt TreeNode . Dieses Beispiel erfordert, dass Sie über ein Customer
-Objekt verfügen, das eine Auflistung von Order
-Objekten enthalten kann. Außerdem ist es erforderlich, dass Sie eine Instanz eines TreeView -Steuerelements auf einem 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 TreeNodezugewiesen sind. Sie können eine TreeNodehinzufügen, entfernen oder klonen. Wenn Sie dies tun, werden alle untergeordneten Strukturknoten hinzugefügt, entfernt oder geklont. Jedes TreeNode kann eine Auflistung anderer TreeNode Objekte enthalten. Dies kann es schwierig machen, zu bestimmen, wo Sie sich beim Durchlaufen der TreeView Sammlung befinden. Verwenden Sie die FullPath -Eigenschaft, um Ihren Standort in einer Struktur zu bestimmen. Die FullPath Zeichenfolge kann mithilfe des PathSeparator Zeichenfolgenwerts analysiert werden, um zu bestimmen, wo eine TreeNode Bezeichnung beginnt und endet.
Die TreeNode Bezeichnung wird durch explizites Festlegen der Text Eigenschaft festgelegt. Die Alternative besteht darin, den Strukturknoten mit einem der Konstruktoren zu erstellen, der TreeNode über einen Zeichenfolgenparameter verfügt, der die Text Eigenschaft darstellt. Die Bezeichnung wird neben dem TreeNode Bild angezeigt, sofern eine angezeigt wird.
Um Bilder neben den Strukturknoten anzuzeigen, weisen Sie der ImageList Eigenschaft des übergeordneten TreeView Steuerelements ein ImageList zu, und weisen Sie einen zu, Image indem Sie auf dessen Indexwert in der ImageList -Eigenschaft verweisen. Legen Sie die ImageIndex -Eigenschaft auf den Indexwert des fest, den Image Sie anzeigen möchten, wenn sich der TreeNode in einem nicht ausgewählten Zustand befindet. Legen Sie die SelectedImageIndex -Eigenschaft ebenfalls auf den Indexwert des fest, der Image angezeigt werden soll, wenn ausgewählt TreeNode ist.
Das Auswählen bestimmter Strukturknoten und das Durchlaufen der Nodes Auflistung kann mithilfe der folgenden Eigenschaftswerte erreicht werden: FirstNode, LastNode, NextNode, PrevNode, NextVisibleNode, . PrevVisibleNode Weisen Sie der Eigenschaft die TreeNode von einer der oben genannten Eigenschaften zurückgegebenen zu TreeView.SelectedNode , 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 erweitern, indem sie die Plustaste (+) neben drücken TreeNode, wenn eine angezeigt wird, oder Sie können die TreeNode erweitern, indem Sie die Expand -Methode aufrufen. Um alle untergeordneten Knotenebenen in der Nodes Auflistung zu erweitern, rufen Sie die -Methode auf ExpandAll . Sie können die untergeordnete TreeNode Ebene reduzieren, indem Sie die Collapse -Methode aufrufen, oder der Benutzer kann die Minustaste (-) neben drücken TreeNode, wenn eine angezeigt wird. Sie können die Toggle -Methode auch aufrufen, um zwischen dem TreeNode erweiterten und reduzierten Status zu wechseln.
Strukturknoten können optional ein Kontrollkästchen anzeigen. Um die Kontrollkästchen anzuzeigen, legen Sie die CheckBoxes -Eigenschaft von TreeView auf fest true
. Die Checked -Eigenschaft wird für Strukturknoten, die sich in einem überprüften Zustand befinden, auf true
festgelegt.
Konstruktoren
TreeNode() |
Initialisiert eine neue Instanz der TreeNode-Klasse. |
TreeNode(SerializationInfo, StreamingContext) |
Initialisiert eine neue Instanz der TreeNode-Klasse mit den angegebenen Serialisierungsinformationen und dem angegebenen Serialisierungskontext. |
TreeNode(String) |
Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext. |
TreeNode(String, Int32, Int32) |
Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext sowie den angegebenen Bildern, die den ausgewählten bzw. den nicht ausgewählten Zustand des Strukturknotens anzeigen sollen. |
TreeNode(String, Int32, Int32, TreeNode[]) |
Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext sowie den angegebenen untergeordneten Strukturknoten und den Bildern, die den ausgewählten bzw. nicht ausgewählten Zustand des Strukturknotens anzeigen sollen. |
TreeNode(String, TreeNode[]) |
Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext und den angegebenen untergeordneten Strukturknoten. |
Eigenschaften
BackColor |
Ruft die Hintergrundfarbe des Strukturknotens ab oder legt diese fest. |
Bounds |
Ruft die Begrenzungen des Strukturknotens ab. |
Checked |
Ruft einen Wert ab, der angibt, ob der Strukturknoten aktiviert ist, oder legt diesen fest. |
ContextMenu |
Ruft das diesem Strukturknoten zugeordnete Kontextmenü ab. |
ContextMenuStrip |
Ruft das diesem Strukturknoten zugeordnete Kontextmenü ab oder legt dieses fest. |
FirstNode |
Ruft den ersten untergeordneten Strukturknoten in der Auflistung der Strukturknoten ab. |
ForeColor |
Ruft die Vordergrundfarbe des Strukturknotens ab oder legt diese fest. |
FullPath |
Ruft den Pfad vom Stammknoten zum aktuellen Strukturknoten ab. |
Handle |
Ruft das Handle des Strukturknotens ab. |
ImageIndex |
Ruft den Indexwert des Bildes in der Bildliste ab, das für einen nicht ausgewählten Strukturknoten angezeigt wird, oder legt diesen fest. |
ImageKey |
Ruft den Schlüssel für das diesem Strukturknoten zugeordnete Bild ab, wenn der Knoten nicht ausgewählt ist, oder legt diesen fest. |
Index |
Ruft die Position des Strukturknotens in der Auflistung der Strukturknoten 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 der Strukturknoten erweitert ist. |
IsSelected |
Ruft einen Wert ab, der angibt, ob der Strukturknoten ausgewählt ist. |
IsVisible |
Ruft einen Wert ab, der angibt, ob der Strukturknoten vollständig oder teilweise sichtbar ist. |
LastNode |
Ruft den letzten untergeordneten Strukturknoten ab. |
Level |
Ruft die nullbasierte Tiefe des Strukturknotens im TreeView-Steuerelement ab. |
Name |
Ruft den Namen des Strukturknotens ab oder legt diesen fest. |
NextNode |
Ruft den nächsten nebengeordneten Strukturknoten ab. |
NextVisibleNode |
Ruft den nächsten sichtbaren Strukturknoten ab. |
NodeFont |
Ruft die Schriftart ab, mit der der Bezeichnungstext des Strukturknotens angezeigt wird, oder legt diese fest. |
Nodes |
Ruft die Auflistung der TreeNode-Objekte ab, die dem aktuellen Strukturknoten zugewiesen sind. |
Parent |
Ruft den übergeordneten Strukturknoten des aktuellen Strukturknotens ab. |
PrevNode |
Ruft den vorherigen nebengeordneten Strukturknoten ab. |
PrevVisibleNode |
Ruft den vorherigen sichtbaren Strukturknoten ab. |
SelectedImageIndex |
Ruft den Indexwert des Bildes in der Bildliste ab, das für einen ausgewählten Strukturknoten angezeigt wird, oder legt diesen fest. |
SelectedImageKey |
Ruft den Schlüssel des Bildes ab, das im Strukturknoten angezeigt wird, wenn dieser ausgewählt ist, oder legt diesen fest. |
StateImageIndex |
Ruft den Index des Bilds ab, das den Zustand des TreeNode angibt, wenn die TreeView-Eigenschaft der übergeordneten CheckBoxes auf |
StateImageKey |
Ruft den Schlüssel des Bilds ab, das den Zustand des TreeNode angibt, wenn die TreeView-Eigenschaft der übergeordneten CheckBoxes auf |
Tag |
Ruft das Objekt ab, das Daten über den Strukturknoten enthält, oder legt dieses fest. |
Text |
Ruft den in der Bezeichnung des Strukturknotens angezeigten Text ab oder legt diesen fest. |
ToolTipText |
Ruft den Text ab, der angezeigt wird, wenn mit dem Mauszeiger auf einen TreeNode gezeigt wird, oder legt diesen fest. |
TreeView |
Ruft die übergeordnete Strukturansicht ab, der der Strukturknoten zugewiesen ist. |
Methoden
BeginEdit() |
Initiiert die Bearbeitung der Strukturknotenbezeichnung. |
Clone() |
Kopiert die Strukturknoten sowie die gesamte Teilstruktur, die bei diesem Strukturknoten beginnt. |
Collapse() |
Reduziert den Strukturknoten. |
Collapse(Boolean) |
Reduziert den TreeNode und optional die zugehörigen untergeordneten Elemente. |
CreateObjRef(Type) |
Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Geerbt von MarshalByRefObject) |
Deserialize(SerializationInfo, StreamingContext) |
Lädt den Zustand des TreeNode aus der angegebenen SerializationInfo. |
EndEdit(Boolean) |
Beendet die Bearbeitung der Strukturknotenbezeichnung. |
EnsureVisible() |
Stellt sicher, dass der Strukturknoten sichtbar ist, wobei ggf. Strukturknoten erweitert werden und bei Bedarf im Strukturansicht-Steuerelement ein Bildlauf durchgeführt wird. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Expand() |
Erweitert den Strukturknoten. |
ExpandAll() |
Erweitert alle untergeordneten Strukturknoten. |
FromHandle(TreeView, IntPtr) |
Gibt den Strukturknoten zurück, dem das angegebene Handle zugeordnet ist und der dem angegebenen Strukturansicht-Steuerelement zugewiesen ist. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
GetNodeCount(Boolean) |
Gibt die Anzahl der untergeordneten Strukturknoten zurück. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab. (Geerbt von MarshalByRefObject) |
MemberwiseClone() |
Erstellt eine flache Kopie des 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 Strukturansicht-Steuerelement. |
Serialize(SerializationInfo, StreamingContext) |
Speichert den Zustand des TreeNode in der angegebenen SerializationInfo. |
Toggle() |
Wechselt zwischen dem erweiterten und dem reduzierten Zustand des Strukturknotens. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. |
Explizite Schnittstellenimplementierungen
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Füllt ein Serialisierungsinformationsobjekt mit den Daten auf, die zum Serialisieren des TreeNode erforderlich sind. |