2012-05-29 1 views
0

C# 프로젝트 (Windows Forms)에서 TreeView를 사용하는데 문제가 있습니다 (분명히 : P). 내 TreeView이 채우기 :C# 왜 SelectedNode.Tag가 null입니까?

void RefreshTreeView() 
{ 
    treeView1.Nodes.Clear(); 
    for (int i = 0 ; i < categories.Count ; ++i) 
    { 
     treeView1.Nodes.Add(categories[i].name); 
     for (int j = 0 ; j < categories[i].questions.Count ; ++j) 
     { 
      treeView1.Nodes[i].Nodes.Add("Pytanie nr " + categories[i].questions[j].number.ToString() 
       + " za " + categories[i].questions[j].points.ToString() + " pkt. [" 
       + (categories[i].questions[j].used ? "Przeczytane" : "Nieprzeczytane") + "]"); 
      treeView1.Nodes[i].Tag = categories[i].questions[j]; // A 
     } 
    } 
} 

위의 "A"로 표시된 줄에는 노드의 태그에 Question 개체를 첨부합니다.

((Question)treeView1.Nodes[0].Tag).number 

하지만 현재 선택된 노드의 태그를 얻으려면 : 그리고 내가 이렇게 내 질문 개체를 검색 할 수있는 프로그램으로 나중에 작동하는 것 같다. 어느 쪽을하려고합니까 : ((Question)treeView1.SelectedNode.Tag).number 하지만 작동하지 않습니다 (태그가 null 임). 내가 도대체 ​​뭘 잘못하고있는 겁니까? 그리고 현재 선택된 노드의 태그를 얻는 방법?

+0

인 자식 노드의 태그를 설정합니다. 프로그램에 널 (null)로 설정하거나 예상 값으로 설정하지 않는 프로그램이 있습니다. 또는 액세스하려는 것과 다른 개체에 액세스하고있는 곳일 수도 있습니다. 간단히'SelectedNode'는'Nodes [x]'가 반환하는 것과 같은'TreeNode' 객체를 반환합니다. –

+0

또한 : asp.net 또는 winforms? –

답변

3

treeView1.Nodes[i].Tag은 상위 노드의 태그입니다.

당신은 아마 내가이 null이기 때문에 null을 반환 생각 treeView1.Nodes[i].Node[j].Tag