2011-11-21 2 views
1

Win32에서 제공되는 문제 또는 .NET 용 treeview로 작업하려고하는 문제가 있습니다. 온라인, msdn 라이브러리 및 stackoverflow 검색 한 및 아무도 나를 도와주는 것..NET 용 TreeView를 사용하는 방법?

사람이, 당신이 childNode에를 만들고, 노드를 만들 트 리뷰를 사용하는 방법을 나에게 보여 주 시겠어요, 등 ...

예제 코드는 크게 감사하겠습니다을, 개체를 검색의 레벨을 확인, 데이터 또는 객체를 설정합니다. 고맙습니다.

+2

윈폼이나 WPF? –

+0

+1 유용한 질문. –

+0

@ Anna Lear, Winform이 선호됩니다. – ThN

답변

3

1) 부모 노드에 인스턴스를 가져, 자식 노드 만들기) 사용 Nodes.Add 방법

treeView1.Nodes.Add('A Node'); 

2 루트 노드

을 만들고 Nodes.Add

Node.Nodes.Add('A Child Node'); 

를 사용 3) 양극에 객체를 저장하려면 노드의 Tag 속성을 사용하십시오.

Node.Tag:=MyObj; 

4) 개체를 검색하려면 태그 속성을 사용하고 값을 캐스팅합니다.

MyObj2:= TMyObject(Node.Tag); 

5) 레벨을 얻으려면 노드의 Level 특성을 확인하십시오.

확인이 간단한 코드 :

Var 
    Node  : TreeNode; 
    MyObj : TMyObject; 
    MyObj2 : TMyObject; 
begin 
    Node:=treeView1.Nodes.Add('A Node'); //add a root node 
    Node.Text:= String.Format('{0} in level {1}',Node.Text,Node.Level); 

    Node.Nodes.Add('A Child Node'); 
    Node.Nodes.Add('Another Child Node'); 
    Node:=treeView1.Nodes.Add('Another Node'); 

    MyObj:=New TMyObject; 
    MyObj.Foo:='Hello'; 
    Node.Tag:=MyObj;//set the object 



    MyObj2:= TMyObject(Node.Tag); //get the assigned object 
    MessageBox.Show(MyObj2.Foo); 

end; 
+0

좋은 답변입니다. 내가 물어볼 수 있다면 첫 번째 노드를 어떻게 찾습니까? C#에는 FirstNode 속성이 있지만 Delphi Prism에서이 옵션이 표시되지 않습니다. – ThN

+0

C#에있는 모든 속성은 Delphi 프리즘에 존재하며 C#과 Delphi Prism (및 모든 .Net 언어)이 동일한 프레임 워크를 사용하고 있음을 기억하십시오. [FirstNode] (http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.firstnode%28v=VS.80%29.aspx)는 각 노드 (TreeNode)의 일부이므로 여러분은이 재산을'Node.FirstNode'처럼 상상할 수 있습니다. – RRUZ

+0

아, 이제 알겠습니다. 대답 해 주셔서 감사합니다. – ThN