Treeview.selectednode给出了错误的值

时间:2012-09-19 11:09:10

标签: c# winforms treeview

我有一个树视图,里面有几个孩子,其中很多都有祖先。 我还在树视图旁边有一个datagridview。基于treeview选择的节点,我在Datagridview中绑定数据。

我使用treeView1.SelectedNode来获取节点值 我的问题是这个表达式给出了之前选择的节点。

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    node = e.node;
}

这给了我正确的节点(选定的节点)。 但是

node = treeview1.selectednode给出我之前选择的节点。 我想在click事件之外获取所选节点(_nodemouseclick)。

我怎样才能得到它。 我不想在全局变量中保存节点然后使用它。

希望我能清楚地解释我的问题。

感谢您的期待。

2 个答案:

答案 0 :(得分:1)

这是因为在更改selectedNode之前会引发MouseClick事件。尝试使用SelectedItemChanged事件

    private void TreeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
    {

    }

答案 1 :(得分:1)

    TreeNode yourGlobalTreeNode;
    void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        yourGlobalTreeNode = e.Node;
        otherFunction();
        anOtherFunction(e.Node);
    }
    void otherFunction()
    {
        MessageBox.Show(yourGlobalTreeNode.Text);
    }
    void anOtherFunction(TreeNode tn)
    {
        MessageBox.Show(tn.Text);
    }

其他功能意味着您可以使用以上两种方法在任何地方使用此tree_node。