C#为什么SelectedNode.Tag为null?

时间:2012-05-29 23:08:17

标签: c# null treeview selecteditem

我在C#项目(Windows窗体)中使用TreeView,我遇到了问题(很明显:P)。我像这样填写我的TreeView:

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对象附加到Node的标签。它似乎在程序的后期工作,我可以像这样检索我的Question对象:

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

但我想获得当前选择的Node标签。我尝试这样做:     ((Question)treeView1.SelectedNode.Tag).number 但它不起作用(Tag为null)。我究竟做错了什么?以及如何获取当前所选节点的标签?

1 个答案:

答案 0 :(得分:3)

treeView1.Nodes[i].Tag是父节点的标记。

您可能想要设置子节点的标记,即treeView1.Nodes[i].Node[j].Tag