TreeNodeCollection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 TreeNode 物件的集合。
public ref class TreeNodeCollection : System::Collections::IList
public class TreeNodeCollection : System.Collections.IList
type TreeNodeCollection = class
interface IList
interface ICollection
interface IEnumerable
Public Class TreeNodeCollection
Implements IList
- 繼承
-
TreeNodeCollection
- 實作
範例
下列程式碼範例會在 控制項中 TreeView 顯示客戶資訊。 根樹狀節點會顯示客戶名稱,子樹狀節點會顯示指派給每位客戶的訂單編號。 在此範例中,1,000 個客戶會分別顯示 15 個訂單。 的重 TreeView 繪會使用 BeginUpdate 和 EndUpdate 方法隱藏,而且會在建立和繪製 TreeNode 物件時 TreeView 顯示等候 Cursor 。 此範例會要求您擁有 Customer
可保存 物件集合的 Order
物件。 它也需要您已在 上 Form 建立 控制項的 TreeView 實例。
// 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
備註
Add、 Remove 和 RemoveAt 方法可讓您新增和移除集合中的個別樹狀節點。
注意
不支援列舉集合和移除節點。
您也可以使用 AddRange 或 Clear 方法來新增或移除集合中的所有樹狀節點。
類別無法繼承自 TreeNodeCollection 類別。
屬性
Count |
取得集合中的 TreeNode 物件總數。 |
IsReadOnly |
取得值,表示集合是否為唯讀。 |
Item[Int32] |
取得或設定在集合的指定索引處的 TreeNode。 |
Item[String] |
從集合中取得具有指定索引鍵的樹狀節點。 |
方法
Add(String) |
將含有指定標籤文字的新樹狀節點加入至目前樹狀節點集合的尾端。 |
Add(String, String) |
使用指定的索引鍵和文字建立新的樹狀節點,並將它加入至集合中。 |
Add(String, String, Int32) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它加入至集合中。 |
Add(String, String, Int32, Int32) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它加入至集合中。 |
Add(String, String, String) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它加入至集合中。 |
Add(String, String, String, String) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它加入至集合中。 |
Add(TreeNode) |
將先前建立的樹狀節點加入至樹狀節點集合中的尾端。 |
AddRange(TreeNode[]) |
將先前建立的樹狀節點陣列加入集合中。 |
Clear() |
從集合中移除所有樹狀節點。 |
Contains(TreeNode) |
判斷指定的樹狀節點是否為集合的成員。 |
ContainsKey(String) |
判斷集合是否包含具有指定索引鍵的樹狀節點。 |
CopyTo(Array, Int32) |
將整個集合複製到現有陣列中的指定位置。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
Find(String, Boolean) |
尋找具有指定索引鍵的樹狀節點,選擇性搜尋子節點。 |
GetEnumerator() |
傳回列舉值,可用來逐一查看樹狀節點集合。 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
IndexOf(TreeNode) |
傳回集合中指定樹狀節點的索引。 |
IndexOfKey(String) |
傳回具有指定索引鍵的第一個樹狀節點之索引。 |
Insert(Int32, String) |
使用指定的文字建立樹狀節點,並將它插入指定的索引處。 |
Insert(Int32, String, String) |
使用指定的文字和索引鍵建立樹狀節點,並將它插入集合中。 |
Insert(Int32, String, String, Int32) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它插入指定索引處的集合中。 |
Insert(Int32, String, String, Int32, Int32) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它插入指定索引處的集合中。 |
Insert(Int32, String, String, String) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它插入指定索引處的集合中。 |
Insert(Int32, String, String, String, String) |
使用指定的索引鍵、文字和影像建立樹狀節點,並將它插入指定索引處的集合中。 |
Insert(Int32, TreeNode) |
在樹狀節點集合中的指定位置插入現有樹狀節點。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Remove(TreeNode) |
從樹狀節點集合中移除指定的樹狀節點。 |
RemoveAt(Int32) |
從樹狀節點集合的指定索引處移除樹狀節點。 |
RemoveByKey(String) |
從集合中移除具有指定索引鍵的樹狀節點。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
明確介面實作
ICollection.IsSynchronized |
取得值,表示是否同步化存取集合 (執行緒安全)。 |
ICollection.SyncRoot |
取得物件,這個物件可以用來對集合進行同步存取。 |
IList.Add(Object) |
將物件加入至樹狀節點集合的尾端。 |
IList.Contains(Object) |
判斷指定的樹狀節點是否為集合的成員。 |
IList.IndexOf(Object) |
傳回集合中指定樹狀節點的索引。 |
IList.Insert(Int32, Object) |
在樹狀節點集合中的指定位置插入現有樹狀節點。 |
IList.IsFixedSize |
取得值,指出樹狀節點集合是否具有固定大小。 |
IList.Item[Int32] |
取得或設定位於集合中指定索引處的樹狀節點。 |
IList.Remove(Object) |
從樹狀節點集合中移除指定的樹狀節點。 |
擴充方法
Cast<TResult>(IEnumerable) |
將 IEnumerable 的項目轉換成指定的型別。 |
OfType<TResult>(IEnumerable) |
根據指定的型別來篩選 IEnumerable 的項目。 |
AsParallel(IEnumerable) |
啟用查詢的平行化作業。 |
AsQueryable(IEnumerable) |
將 IEnumerable 轉換成 IQueryable。 |