TreeNode 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 파생
- 특성
- 구현
예제
다음 코드 예제에서는 컨트롤에 고객 정보를 표시 합니다 TreeView . 루트 트리 노드는 고객 이름을 표시하고 자식 트리 노드는 각 고객에게 할당된 주문 번호를 표시합니다. 이 예제에서는 1,000명의 고객이 각각 15개의 주문으로 표시됩니다. 의 TreeView 다시 그리기는 및 EndUpdate 메서드를 사용하여 BeginUpdate 표시되지 않으며 가 개체를 만들고 그리는 동안 TreeView 대기 Cursor 가 TreeNode 표시됩니다. 이 예제에서는 Customer
개체 컬렉션을 Order
보유할 수 있는 개체가 있어야 합니다. 또한 에 컨트롤의 인스턴스를 TreeView 만들어야 합니다 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
설명
컬렉션은 Nodes 현재 TreeNode에 할당된 모든 자식 TreeNode 개체를 보유합니다. 를 추가, 제거 또는 복제 TreeNode할 수 있습니다. 이렇게 하면 모든 자식 트리 노드가 추가, 제거 또는 복제됩니다. 각각 TreeNode 은 다른 TreeNode 개체의 컬렉션을 포함할 수 있습니다. 이렇게 하면 컬렉션을 반복할 때 의 TreeView 위치를 결정하기 어려울 수 있습니다. 트리 구조에서 위치를 확인하려면 속성을 사용합니다 FullPath . 문자열 값을 FullPath 사용하여 PathSeparator 문자열을 구문 분석하여 레이블이 TreeNode 시작되고 끝나는 위치를 확인할 수 있습니다.
레이블은 TreeNode 속성을 명시적으로 설정 Text 하여 설정합니다. 대신 속성을 나타내는 문자열 매개 변수가 있는 생성자 중 TreeNode 하나를 사용하여 트리 노드를 Text 만듭니다. 레이블이 표시되는 경우 이미지 옆에 TreeNode 표시됩니다.
트리 노드 옆에 이미지를 표시하려면 부모 TreeView 컨트롤의 속성에 ImageList 를 ImageList 할당하고 속성에서 인덱스 값을 ImageList 참조하여 를 할당 Image 합니다. ImageIndex 속성을 가 선택되지 않은 상태일 때 TreeNode 표시할 의 Image 인덱스 값으로 설정합니다. 마찬가지로 속성을 가 선택될 때 TreeNode 표시할 의 Image 인덱스 값으로 설정합니다SelectedImageIndex.
특정 트리 노드를 선택하고 컬렉션을 반복하는 Nodes 작업은 , , , NextVisibleNodePrevVisibleNodeLastNodePrevNodeNextNode속성 값을 FirstNode사용하여 수행할 수 있습니다. TreeNode 앞서 언급한 속성 중 하나에서 반환된 를 속성에 TreeView.SelectedNode 할당하여 컨트롤에서 해당 트리 노드를 TreeView 선택합니다.
트리 노드를 확장하여 다음 수준의 자식 트리 노드를 표시할 수 있습니다. 사용자가 옆에 있는 더하기(+) 단추를 TreeNode눌러 를 확장 TreeNode 할 수 있습니다(표시되는 경우). 또는 메서드를 Expand 호출하여 를 TreeNode 확장할 수 있습니다. 컬렉션의 Nodes 모든 자식 트리 노드 수준을 확장하려면 메서드를 호출합니다 ExpandAll . 메서드를 호출 Collapse 하여 자식 TreeNode 수준을 축소하거나, 가 표시되는 경우 사용자가 옆에 TreeNode있는 빼기(-) 단추를 누를 수 있습니다. 메서드를 Toggle 호출하여 확장된 상태와 축소된 상태 간에 를 번갈아 TreeNode 사용할 수도 있습니다.
트리 노드는 필요에 따라 확인란을 표시할 수 있습니다. 확인란을 표시하려면 의 CheckBoxesTreeViewtrue
속성을 로 설정합니다. 속성은 Checked 선택된 상태에 있는 트리 노드에 대해 로 설정 true
됩니다.
생성자
TreeNode() |
TreeNode 클래스의 새 인스턴스를 초기화합니다. |
TreeNode(SerializationInfo, StreamingContext) |
지정된 serialization 정보와 컨텍스트를 사용하여 TreeNode 클래스의 새 인스턴스를 초기화합니다. |
TreeNode(String) |
지정된 레이블 텍스트를 사용하여 TreeNode 클래스의 새 인스턴스를 초기화합니다. |
TreeNode(String, Int32, Int32) |
트리 노드가 선택 상태 또는 선택하지 않은 상태에 있을 때 표시할 지정된 레이블 텍스트와 이미지를 사용하여 TreeNode 클래스의 새 인스턴스를 초기화합니다. |
TreeNode(String, Int32, Int32, TreeNode[]) |
트리 노드가 선택 상태 또는 선택하지 않은 상태에 있을 때 표시할 지정된 레이블 텍스트, 자식 트리 노드 및 이미지를 사용하여 TreeNode 클래스의 새 인스턴스를 초기화합니다. |
TreeNode(String, TreeNode[]) |
지정된 레이블 텍스트와 자식 트리 노드를 사용하여 TreeNode 클래스의 새 인스턴스를 초기화합니다. |
속성
BackColor |
트리 노드의 배경색을 가져오거나 설정합니다. |
Bounds |
트리 노드의 경계를 가져옵니다. |
Checked |
트리 노드가 선택되어 있는지 여부를 나타내는 값을 가져오거나 설정합니다. |
ContextMenu |
이 트리 노드와 연결된 바로 가기 메뉴를 가져옵니다. |
ContextMenuStrip |
이 트리 노드와 연결된 바로 가기 메뉴를 가져오거나 설정합니다. |
FirstNode |
트리 노드 컬렉션에 있는 첫째 자식 트리 노드를 가져옵니다. |
ForeColor |
트리 노드의 전경색을 가져오거나 설정합니다. |
FullPath |
루트 트리 노드에서 현재 트리 노드까지의 경로를 가져옵니다. |
Handle |
트리 노드의 핸들을 가져옵니다. |
ImageIndex |
트리 노드를 선택하지 않은 상태일 때 표시되는 이미지의 이미지 목록 인덱스 값을 가져오거나 설정합니다. |
ImageKey |
트리 노드가 선택되지 않은 상태일 때 이 트리 노드와 연결된 이미지의 키를 가져오거나 설정합니다. |
Index |
트리 노드 컬렉션에 있는 트리 노드의 위치를 가져옵니다. |
IsEditing |
트리 노드가 편집 가능한 상태에 있는지 여부를 나타내는 값을 가져옵니다. |
IsExpanded |
트리 노드가 확장된 상태에 있는지 여부를 나타내는 값을 가져옵니다. |
IsSelected |
트리 노드가 선택 상태에 있는지 여부를 나타내는 값을 가져옵니다. |
IsVisible |
트리 노드의 전체 또는 일부가 표시되는지 여부를 나타내는 값을 가져옵니다. |
LastNode |
마지막 자식 트리 노드를 가져옵니다. |
Level |
TreeView 컨트롤에 있는 트리 노드의 0부터 시작하는 깊이를 가져옵니다. |
Name |
트리 노드의 이름을 가져오거나 설정합니다. |
NextNode |
다음 형제 트리 노드를 가져옵니다. |
NextVisibleNode |
다음의 표시되는 트리 노드를 가져옵니다. |
NodeFont |
트리 노드의 레이블에 텍스트를 표시하기 위해 사용된 글꼴을 가져오거나 설정합니다. |
Nodes |
현재 트리 노드에 할당된 TreeNode 개체의 컬렉션을 가져옵니다. |
Parent |
현재 트리 노드의 부모 트리 노드를 가져옵니다. |
PrevNode |
이전 형제 트리 노드를 가져옵니다. |
PrevVisibleNode |
이전에 표시되는 트리 노드를 가져옵니다. |
SelectedImageIndex |
트리 노드를 선택한 상태일 때 표시되는 이미지의 이미지 목록 인덱스 값을 가져오거나 설정합니다. |
SelectedImageKey |
트리 노드가 선택된 상태일 때 표시되는 이미지의 키를 가져오거나 설정합니다. |
StateImageIndex |
부모 TreeNode의 TreeView 속성이 |
StateImageKey |
부모 TreeNode의 TreeView 속성이 |
Tag |
트리 노드에 대한 데이터가 들어 있는 개체를 가져오거나 설정합니다. |
Text |
트리 노드의 레이블에 표시할 텍스트를 가져오거나 설정합니다. |
ToolTipText |
마우스 포인터로 TreeNode를 가리키면 나타나는 텍스트를 가져오거나 설정합니다. |
TreeView |
트리 노드가 할당된 부모 트리 뷰를 가져옵니다. |
메서드
BeginEdit() |
트리 노드 레이블의 편집을 초기화합니다. |
Clone() |
트리 노드와 이 트리 노드에서 시작하는 전체 하위 트리를 복사합니다. |
Collapse() |
트리 노드를 축소합니다. |
Collapse(Boolean) |
TreeNode를 축소하고 선택적으로 해당 자식을 축소합니다. |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
Deserialize(SerializationInfo, StreamingContext) |
지정된 TreeNode에서 SerializationInfo의 상태를 로드합니다. |
EndEdit(Boolean) |
트리 노드 레이블의 편집을 마칩니다. |
EnsureVisible() |
트리 노드가 표시되고 확장되며 트리 뷰 컨트롤이 충분히 스크롤되는지 확인합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
Expand() |
트리 노드를 확장합니다. |
ExpandAll() |
자식 트리 노드를 모두 확장합니다. |
FromHandle(TreeView, IntPtr) |
지정된 핸들을 사용하여 지정된 트리 뷰 컨트롤에 할당된 트리 노드를 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetNodeCount(Boolean) |
자식 트리 노드의 수를 반환합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
Remove() |
트리 뷰 컨트롤에서 현재 트리 노드를 제거합니다. |
Serialize(SerializationInfo, StreamingContext) |
TreeNode의 상태를 지정된 SerializationInfo에 저장합니다. |
Toggle() |
트리 노드를 확장된 상태 또는 축소된 상태로 설정/해제합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. |
명시적 인터페이스 구현
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
TreeNode을 serialize하는 데 필요한 데이터로 serialization 정보 개체를 채웁니다. |