2011-04-21 2 views
0

내 Windows Forms 응용 프로그램에서 확인란이있는 트리보기 컨트롤이 하나 있습니다. 사용자가 여러 개의 확인란을 선택한 다음 선택한 모든 확인란 노드의 경로를 표시하려고합니다. 어떻게합니까?C# .net (2010) Windows Forms 응용 프로그램의 TreeView 컨트롤에서 모든 Checkbox 값을 가져 오는 방법은 무엇입니까?

또한 부모 노드가 선택되거나 선택 해제 될 때마다 모든 하위 노드를 자동으로 선택하거나 선택 해제하는 방법은 무엇입니까?

답변

2
protected string getCheckedNodes(TreeNodeCollection tnc) 
    { 
     StringBuilder sb = new StringBuilder(); 

     foreach (TreeNode tn in tnc) 
     { 
      if (tn.Checked) 
      { 
       string res = tn.FullPath; 
       if (res.Length > 0) 
        sb.AppendLine(res); 
      } 
      string childRes = getCheckedNodes(tn.Nodes); 
      if (childRes.Length > 0) 
       sb.AppendLine(childRes); 
     } 

     return sb.ToString(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show(getCheckedNodes(treeView1.Nodes)); 
    } 

나는 문자열을 통해 출력했습니다하지만 당신은 분명히 등을 컬렉션에 추가 좋아하는 당신이 그것으로 원하는 무엇이든 할 수

TBohnen.Your 코드 작업 perfectly.How가 자동으로 선택하거나 선택 취소
+0

감사합니다 부모 노드가 선택 될 때마다 모든 자식 노드는 어떻게됩니까? – Saravanan

+0

멋지다. 기쁘다. 다른 질문을 만들고이 질문에 대한 링크가이 질문을 복잡하게하기 때문에 여기에 질문에 대한 링크를 게시하십시오. –

관련 문제