TreeNode Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje uzel objektu 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
- Dědičnost
- Odvozené
- Atributy
- Implementuje
Příklady
Následující příklad kódu zobrazí informace o zákazníkovi v ovládacím TreeView prvku. Uzly kořenového stromu zobrazují jména zákazníků a uzly podřízeného stromu zobrazují čísla objednávek přiřazená každému zákazníkovi. V tomto příkladu se zobrazí 1 000 zákazníků s 15 objednávkami. Překreslení TreeNode objektu TreeView je potlačeno pomocí BeginUpdate metod a EndUpdate a při vytváření a malování objektů se zobrazí TreeView čekáníCursor. Tento příklad vyžaduje, abyste měli Customer
objekt, který může obsahovat kolekci Order
objektů. Vyžaduje také, abyste vytvořili instanci TreeView ovládacího prvku v objektu 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
Poznámky
Kolekce Nodes obsahuje všechny podřízené TreeNode objekty přiřazené k aktuálnímu TreeNodeobjektu . Když to uděláte, můžete přidat, odebrat nebo naklonovat TreeNode; všechny uzly podřízeného stromu se přidají, odeberou nebo naklonují. Každý z nich TreeNode může obsahovat kolekci dalších TreeNode objektů. To může ztížit určení, kde se při TreeView iteraci kolekcí nacházíte. K určení umístění ve stromové struktuře použijte FullPath vlastnost . Řetězec FullPath lze analyzovat pomocí řetězcové PathSeparator hodnoty a určit, kde TreeNode popisek začíná a končí.
Popisek TreeNode se nastavuje explicitním Text nastavením vlastnosti . Alternativou je vytvoření uzlu stromu pomocí jednoho z TreeNode konstruktorů, který má řetězcový parametr, který představuje Text vlastnost . Popisek se zobrazí vedle obrázku TreeNode , pokud se zobrazí.
Chcete-li zobrazit obrázky vedle uzlů stromu, přiřaďte ImageListImageList vlastnost nadřazeného TreeView ovládacího prvku a přiřaďte objekt Image odkazem na hodnotu jeho indexu ImageList ve vlastnosti . ImageIndex Nastavte vlastnost na hodnotu indexu objektuImage, který chcete zobrazit, když TreeNode je v nevybraném stavu. Podobně nastavte SelectedImageIndex vlastnost na hodnotu indexu Image , kterou chcete zobrazit při TreeNode výběru.
Výběr konkrétních uzlů stromu a iterace kolekcí Nodes se dá dosáhnout pomocí následujících hodnot vlastností: FirstNode, LastNode, , NextNode, PrevNode, NextVisibleNode, . PrevVisibleNode TreeNode Přiřaďte vlastnost vrácenou jednou z výše uvedených vlastností k TreeView.SelectedNode vlastnosti , abyste vybrali uzel stromu v ovládacím TreeView prvku.
Uzly stromové struktury je možné rozbalit a zobrazit tak další úroveň uzlů podřízeného stromu. Uživatel může rozbalit TreeNode stisknutím tlačítka plus (+) vedle TreeNode, pokud se zobrazí, nebo můžete rozbalit TreeNode voláním Expand metody . Pokud chcete rozbalit všechny úrovně uzlů podřízeného stromu v kolekci Nodes , zavolejte metodu ExpandAll . Podřízenou TreeNode úroveň můžete sbalit voláním Collapse metody nebo uživatel může stisknout tlačítko minus (-) vedle TreeNode, pokud se zobrazí. Můžete také volat metodu Toggle , která střídá TreeNode mezi rozbaleným a sbaleným stavem.
Uzly stromové struktury můžou volitelně zobrazit zaškrtávací políčko. Pokud chcete zobrazit zaškrtávací políčka, nastavte CheckBoxes vlastnost objektu TreeView na true
hodnotu . Pro Checked uzly stromové struktury, které jsou ve zaškrtnutém stavu, je vlastnost nastavená na true
hodnotu .
Konstruktory
TreeNode() |
Inicializuje novou instanci TreeNode třídy . |
TreeNode(SerializationInfo, StreamingContext) |
Inicializuje novou instanci TreeNode třídy pomocí zadané serializace informace a kontextu. |
TreeNode(String) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku. |
TreeNode(String, Int32, Int32) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku a obrázky, které se zobrazí, když je uzel stromu ve vybraném a nevybraném stavu. |
TreeNode(String, Int32, Int32, TreeNode[]) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku, uzly podřízeného stromu a obrázky, které se zobrazí, když je uzel stromu ve vybraném a nevybraném stavu. |
TreeNode(String, TreeNode[]) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku a podřízenými uzly stromu. |
Vlastnosti
BackColor |
Získá nebo nastaví barvu pozadí uzlu stromu. |
Bounds |
Získá hranice uzlu stromu. |
Checked |
Získá nebo nastaví hodnotu označující, zda uzel stromu je v kontrolovaném stavu. |
ContextMenu |
Získá místní nabídku, která je přidružena k tomuto uzlu stromu. |
ContextMenuStrip |
Získá nebo nastaví místní nabídku přidruženou k tomuto uzlu stromu. |
FirstNode |
Získá první podřízený strom uzel v kolekci uzlu stromu. |
ForeColor |
Získá nebo nastaví barvu popředí uzlu stromu. |
FullPath |
Získá cestu z uzlu kořenového stromu k aktuálnímu uzlu stromu. |
Handle |
Získá popisovač uzlu stromu. |
ImageIndex |
Získá nebo nastaví hodnotu indexu seznamu obrázků obrázku zobrazeného při uzlu stromu je v nevybraném stavu. |
ImageKey |
Získá nebo nastaví klíč pro image přidružené k tomuto uzlu stromu, když uzel je v nevybraném stavu. |
Index |
Získá pozici uzlu stromu v kolekci uzlu stromu. |
IsEditing |
Získá hodnotu označující, zda uzel stromu je v upravitelném stavu. |
IsExpanded |
Získá hodnotu označující, zda je uzel stromu v rozbaleném stavu. |
IsSelected |
Získá hodnotu označující, zda je uzel stromu ve vybraném stavu. |
IsVisible |
Získá hodnotu označující, zda je uzel stromu viditelný nebo částečně viditelný. |
LastNode |
Získá poslední uzel podřízeného stromu. |
Level |
Získá nulovou hloubku uzlu stromu v ovládacím TreeView prvku. |
Name |
Získá nebo nastaví název uzlu stromu. |
NextNode |
Získá další uzel stromu na stejné úrovni. |
NextVisibleNode |
Získá další viditelný uzel stromu. |
NodeFont |
Získá nebo nastaví písmo, které se používá k zobrazení textu v popisku uzlu stromu. |
Nodes |
Získá kolekci TreeNode objektů přiřazených k aktuálnímu uzlu stromu. |
Parent |
Získá uzel nadřazeného stromu aktuálního uzlu stromu. |
PrevNode |
Získá předchozí uzel stromu na stejné úrovni. |
PrevVisibleNode |
Získá předchozí viditelný uzel stromu. |
SelectedImageIndex |
Získá nebo nastaví hodnotu indexu seznamu obrázků obrázku, který se zobrazí, když uzel stromu je ve vybraném stavu. |
SelectedImageKey |
Získá nebo nastaví klíč obrázku zobrazeného v uzlu stromu, pokud je ve vybraném stavu. |
StateImageIndex |
Získá nebo nastaví index obrázku, který se používá k označení stavu TreeNode , když nadřazený TreeView objekt má jeho CheckBoxes vlastnost nastavenou na |
StateImageKey |
Získá nebo nastaví klíč image, která se používá k označení stavu TreeNode , když nadřazený TreeView objekt má jeho CheckBoxes vlastnost nastavenou na |
Tag |
Získá nebo nastaví objekt, který obsahuje data o uzlu stromu. |
Text |
Získá nebo nastaví text zobrazený v popisku uzlu stromu. |
ToolTipText |
Získá nebo nastaví text, který se zobrazí, když ukazatel myši najede na TreeNode. |
TreeView |
Získá nadřazené stromové zobrazení, ke kterému je přiřazen uzel stromu. |
Metody
BeginEdit() |
Zahájí úpravy popisku uzlu stromu. |
Clone() |
Zkopíruje uzel stromu a celý podstrom rootovaný na tomto uzlu stromové struktury. |
Collapse() |
Sbalí uzel stromu. |
Collapse(Boolean) |
Sbalí TreeNode objekt a volitelně sbalí jeho podřízené položky. |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
Deserialize(SerializationInfo, StreamingContext) |
Načte stav ze TreeNode zadaného SerializationInfo. |
EndEdit(Boolean) |
Ukončí úpravy popisku uzlu stromu. |
EnsureVisible() |
Zajišťuje viditelnost uzlu stromové struktury, rozbalení uzlů stromu a posouvání ovládacího prvku stromového zobrazení podle potřeby. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Expand() |
Rozbalí uzel stromu. |
ExpandAll() |
Rozbalí všechny uzly podřízeného stromu. |
FromHandle(TreeView, IntPtr) |
Vrátí uzel stromu se zadaným popisovačem a přiřazeným k zadanému ovládacímu prvku stromového zobrazení. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetNodeCount(Boolean) |
Vrátí počet uzlů podřízeného stromu. |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
Remove() |
Odebere aktuální uzel stromu z ovládacího prvku stromového zobrazení. |
Serialize(SerializationInfo, StreamingContext) |
Uloží stav do TreeNode zadaného SerializationInfo. |
Toggle() |
Přepne uzel stromu na rozbalený nebo sbalený stav. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. |
Explicitní implementace rozhraní
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Naplní objekt serializace informací dat potřebnými k serializaci objektu TreeNode. |