2012-09-12 2 views

답변

2

의도 한대로 만족합니까? 이 속성을 속성으로 표시했지만 {get; set;}을 생략하면 필드가 생깁니다.

class myTreeNode : System.Windows.Forms.TreeNode 
    { 
    public string NodeType { get; set; } 
    public string NodePath { get; set; } 
    public string Direction { get; set; } 
    } 

가 트 리뷰에 myTreeNode 인스턴스를 추가하려면이 작업을 수행 할 것 :

myTreeNode node = new myTreeNode(); 
treeview1.Nodes.Add(node); 

당신이 상속 된 노드에서 직접이를 저장하는 대신 태그 속성을 사용하려면 (보여주는 두

class NodeTag 
{ 
    public NodeTag(string path, string direction) 
    { 
    NodePath = path; 
    Direction = direction; 
    } 
    public string Direction {get;set;} 
} 

다음 속성 대신 3), 트리를 생성 코드에서, 당신은이 작업을 수행 할 수 있습니다 :

TreeNode node = new TreeNode(); 
node.Tag = new NodeTag("my path", "South"); 
treeView1.Nodes.Add(node); 
+0

당신이 말한 것처럼'myTreeNode' 클래스를 만들거나'TreeView.Tag' 속성에 필요한 모든 필드를 가진 객체에 대한 참조를 저장하는 것이 더 낫지는 않습니까? –

+0

및이 코드의 모든 필드를 초기화하는 생성자가 필요합니까? –

+0

http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx를 읽으면 태그 속성이 노드에 대한 추가 데이터를 보유하고 있음을 알 수 있습니다. 예, 생성자에서 초기화 할 수 있습니다. 당신은 그것들을 읽기 전용 속성으로 만들고 생성자에서만 그것들을 설정할 수 있습니다. 그러나 처음에 요청한 것처럼 TreeNode의 필드로 설정하려는 상황이있을 수 있습니다. –

관련 문제