TreeNode Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy csomópont csomópontját TreeViewjelöli.
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
- Öröklődés
- Származtatott
- Attribútumok
- Megvalósítás
Példák
Az alábbi példakód egy vezérlő ügyféladatait TreeView jeleníti meg. A gyökérfacsomópontok megjelenítik az ügyfélneveket, a gyermekfacsomópontok pedig az egyes ügyfelekhez rendelt rendelési számokat. Ebben a példában 1000 ügyfél jelenik meg egyenként 15 megrendeléssel. A rendszer letiltja az újrafestést a TreeView metódusok és BeginUpdate a EndUpdate metódusok használatával, és várakozás Cursor jelenik meg, amíg a TreeView rendszer létrehozza és festi az TreeNode objektumokat. Ehhez a példához olyan Customer objektumra van szükség, amely képes objektumgyűjteményt Order tárolni. Emellett létre kell hoznia egy TreeView vezérlőpéldányt egy 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
Megjegyzések
A Nodes gyűjtemény az aktuálishoz TreeNoderendelt összes gyermekobjektumot TreeNode tartalmazza. Hozzáadhat, eltávolíthat vagy klónozhat egy TreeNode; amikor ezt teszi, a rendszer minden gyermekfacsomópontot hozzáad, eltávolít vagy klónozott. Mindegyik TreeNode tartalmazhat más TreeNode objektumok gyűjteményét. Ez megnehezítheti annak meghatározását, hogy hol van a TreeView gyűjteményen keresztüli iteráláskor. A faszerkezetben elfoglalt hely meghatározásához használja a tulajdonságot FullPath . A FullPath sztring a sztring értékével PathSeparator elemezhető annak meghatározásához, hogy hol kezdődik és végződik egy TreeNode címke.
A TreeNode címke beállítása a Text tulajdonság explicit beállításával történik. A másik lehetőség a facsomópont létrehozása a TreeNode tulajdonságot képviselő Text sztringparaméterrel rendelkező konstruktorok egyikével. A címke a kép mellett TreeNode jelenik meg, ha megjelenik.
Ha képeket szeretne megjeleníteni a facsomópontok mellett, rendeljen hozzá egy ImageList tulajdonságot a ImageList szülővezérlőhöz TreeView , és rendeljen hozzá egy Image értéket a ImageList tulajdonság indexértékére hivatkozva. Állítsa a ImageIndex tulajdonságot a megjeleníteni kívánt indexértékre Image , ha a TreeNode tulajdonság nem kijelölt állapotban van. Hasonlóképpen állítsa be a SelectedImageIndex tulajdonságot annak az indexértéknek az indexértékére Image , amelyet a kijelöléskor TreeNode meg szeretne jeleníteni.
Adott facsomópontok kiválasztása és a gyűjteményen keresztüli iterálás a Nodes következő tulajdonságértékek használatával valósítható meg: FirstNode, , LastNode, NextNode, PrevNode. NextVisibleNodePrevVisibleNode Rendelje hozzá az TreeNode egyik fent említett tulajdonság által visszaadott értéket a tulajdonsághoz a TreeView.SelectedNode vezérlőben lévő TreeView facsomópont kiválasztásához.
A facsomópontok kibonthatók a gyermekfacsomópontok következő szintjének megjelenítéséhez. A felhasználó kibonthatja a TreeNode plusz (+) gombot a TreeNodemellette lévő plusz (+) gombbal, ha megjelenik egy, vagy a metódus meghívásával kibonthatja a TreeNodeExpand elemet. A gyűjtemény összes gyermekfacsomópont-szintjének Nodes kibontásához hívja meg a metódust ExpandAll . A metódus meghívásával TreeNode összecsukhatja a gyermekszintetCollapse, vagy ha megjelenik, a felhasználó lenyomhatja a mínusz (-) gombot a TreeNodemellette. A metódus meghívható a Toggle kibontott és az TreeNode összecsukott állapotok közötti váltáshoz is.
A facsomópontok opcionálisan megjeleníthetik a jelölőnégyzetet. A jelölőnégyzetek megjelenítéséhez állítsa a CheckBoxes tulajdonságot a TreeView következőre true. A Checked tulajdonság bejelölt állapotban lévő facsomópontokra van beállítva true .
Konstruktorok
| Name | Description |
|---|---|
| TreeNode() |
Inicializálja a TreeNode osztály új példányát. |
| TreeNode(SerializationInfo, StreamingContext) |
Inicializálja az osztály új példányát a TreeNode megadott szerializálási információk és környezet használatával. |
| TreeNode(String, Int32, Int32, TreeNode[]) |
Inicializálja az TreeNode osztály új példányát a megadott címkeszöveggel, gyermekfacsomópontokkal és rendszerképekkel, hogy megjelenjenek, ha a facsomópont kijelölt és nem kijelölt állapotban van. |
| TreeNode(String, Int32, Int32) |
Inicializálja az TreeNode osztály új példányát a megadott címkeszöveggel és képekkel, hogy megjelenjenek, ha a facsomópont kijelölt és nem kijelölt állapotban van. |
| TreeNode(String, TreeNode[]) |
Inicializálja az TreeNode osztály új példányát a megadott címkeszöveggel és gyermekfacsomópontokkal. |
| TreeNode(String) |
Inicializálja az osztály új példányát TreeNode a megadott címkeszöveggel. |
Tulajdonságok
| Name | Description |
|---|---|
| BackColor |
Lekéri vagy beállítja a facsomópont háttérszínét. |
| Bounds |
Lekéri a facsomópont határait. |
| Checked |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a facsomópont ellenőrzött állapotban van-e. |
| ContextMenu |
Lekéri a facsomóponthoz társított helyi menüt. |
| ContextMenuStrip |
Lekéri vagy beállítja a facsomóponthoz társított helyi menüt. |
| FirstNode |
Lekéri az első gyermekfacsomópontot a facsomópont-gyűjteményben. |
| ForeColor |
Lekéri vagy beállítja a facsomópont előtérszínét. |
| FullPath |
Lekéri az elérési utat a gyökérfacsomóponttól az aktuális facsomópontig. |
| Handle |
Lekéri a facsomópont fogópontját. |
| ImageIndex |
Lekéri vagy beállítja a rendszerkép képlistaindex-értékét, ha a facsomópont nem kijelölt állapotban van. |
| ImageKey |
Lekéri vagy beállítja a facsomóponthoz társított rendszerkép kulcsát, ha a csomópont nem kiválasztott állapotban van. |
| Index |
Lekéri a facsomópont helyét a facsomópont-gyűjteményben. |
| IsEditing |
Beolvas egy értéket, amely jelzi, hogy a facsomópont szerkeszthető állapotban van-e. |
| IsExpanded |
Egy értéket kap, amely jelzi, hogy a facsomópont kibontott állapotban van-e. |
| IsSelected |
Beolvas egy értéket, amely jelzi, hogy a facsomópont a kiválasztott állapotban van-e. |
| IsVisible |
Egy értéket kap, amely jelzi, hogy a facsomópont látható vagy részlegesen látható-e. |
| LastNode |
Lekéri az utolsó gyermekfacsomópontot. |
| Level |
Lekéri a facsomópont nullaalapú mélységét a TreeView vezérlőben. |
| Name |
Lekéri vagy beállítja a facsomópont nevét. |
| NextNode |
Lekéri a következő testvérfacsomópontot. |
| NextVisibleNode |
Lekéri a következő látható facsomópontot. |
| NodeFont |
Lekéri vagy beállítja a facsomópont címkéjén a szöveg megjelenítéséhez használt betűtípust. |
| Nodes |
Lekéri az aktuális facsomóponthoz rendelt objektumok gyűjteményét TreeNode . |
| Parent |
Lekéri az aktuális facsomópont szülőfacsomópontját. |
| PrevNode |
Lekéri az előző testvérfacsomópontot. |
| PrevVisibleNode |
Lekéri az előző látható facsomópontot. |
| SelectedImageIndex |
Lekéri vagy beállítja annak a képnek a képlistára vonatkozó indexértékét, amely akkor jelenik meg, amikor a facsomópont a kijelölt állapotban van. |
| SelectedImageKey |
Lekéri vagy beállítja a facsomóponton megjelenő kép kulcsát, ha az kijelölt állapotban van. |
| StateImageIndex |
Lekéri vagy beállítja a rendszerkép indexét, amely annak az állapotnak az TreeNode állapotát jelzi, amikor a szülő TreeView tulajdonsága CheckBoxes a következőre |
| StateImageKey |
Lekéri vagy beállítja a kép kulcsát, amely annak az állapotnak TreeNode az állapotát jelzi, amikor a szülő TreeView tulajdonsága CheckBoxes a következőre |
| Tag |
Lekéri vagy beállítja a facsomópont adatait tartalmazó objektumot. |
| Text |
Lekéri vagy beállítja a facsomópont címkéjén megjelenő szöveget. |
| ToolTipText |
Lekéri vagy beállítja azt a szöveget, amely akkor jelenik meg, amikor az egérmutató rámutat egy TreeNodegombra. |
| TreeView |
Lekéri azt a szülőfanézetet, amelyhez a facsomópont hozzá van rendelve. |
Metódusok
| Name | Description |
|---|---|
| BeginEdit() |
Kezdeményezi a facsomópont feliratának szerkesztését. |
| Clone() |
Átmásolja a facsomópontot és a facsomóponton gyökerező teljes részhalmazt. |
| Collapse() |
Összecsukja a facsomópontot. |
| Collapse(Boolean) |
Összecsukja a TreeNode gyermekét, és opcionálisan összecsukja a gyermekét. |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| Deserialize(SerializationInfo, StreamingContext) |
Betölti TreeNode a megadott SerializationInfoállapotot. |
| EndEdit(Boolean) |
Véget vet a facsomópont feliratának szerkesztésének. |
| EnsureVisible() |
Biztosítja, hogy a facsomópont látható legyen, kibontsa a facsomópontokat, és szükség szerint görgethesse a fanézet vezérlőt. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Expand() |
Kibontja a facsomópontot. |
| ExpandAll() |
Kibontja az összes gyermekfacsomópontot. |
| FromHandle(TreeView, IntPtr) |
A megadott fogóponttal rendelkező facsomópontot adja vissza, és hozzárendeli a megadott fanézet-vezérlőhöz. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetNodeCount(Boolean) |
A gyermekfacsomópontok számát adja vissza. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| Remove() |
Eltávolítja az aktuális facsomópontot a fanézet vezérlőből. |
| Serialize(SerializationInfo, StreamingContext) |
Menti a megadott TreeNodeállapototSerializationInfo. |
| Toggle() |
A facsomópontot kibontott vagy összecsukott állapotra váltja. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Szerializálási információs objektumot tölt fel a szerializáláshoz TreeNodeszükséges adatokkal. |