C# Treeview.selectednode提供了错误的值
我有一个树视图,它有几个孩子,其中许多都有祖先。 我在树视图旁边还有一个datagridview。基于treeview选择的节点,我在Datagridview中绑定数据 我使用C# Treeview.selectednode提供了错误的值,c#,winforms,treeview,C#,Winforms,Treeview,我有一个树视图,它有几个孩子,其中许多都有祖先。 我在树视图旁边还有一个datagridview。基于treeview选择的节点,我在Datagridview中绑定数据 我使用treeView1.SelectedNode获取节点值 我的问题是,这个表达式给出了以前选择的节点 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { node = e.node; } 这将为我
treeView1.SelectedNode
获取节点值
我的问题是,这个表达式给出了以前选择的节点
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
node = e.node;
}
这将为我提供正确的节点(选定节点)。
但是
node=treeview1.selectednode
给出我先前选择的节点。
我想在单击事件(\u nodemouseclick)之外获取所选节点
我怎样才能得到它。
我不想在全局变量中保存节点,然后使用它
希望我能清楚地解释我的问题
非常感谢。这是因为在更改selectedNode之前引发了MouseClick事件。尝试改用SelectedItemChanged事件
private void TreeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
}
private void TreeView1\u SelectedItemChanged(对象发送方,RoutedPropertyChangedEventArgs e)
{
}
其他函数意味着您可以使用上述两种方法在任何地方使用此树节点。Private不需要写入,它是默认的保护级别。请改用AfterSelect事件。在获得正确的节点后,将其保存在全局变量中没有问题。看到我的答案了吗
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);
}