我有一个树视图,里面有几个孩子,其中很多都有祖先。 我还在树视图旁边有一个datagridview。基于treeview选择的节点,我在Datagridview中绑定数据。
我使用treeView1.SelectedNode
来获取节点值
我的问题是这个表达式给出了之前选择的节点。
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
node = e.node;
}
这给了我正确的节点(选定的节点)。 但是
node = treeview1.selectednode
给出我之前选择的节点。
我想在click事件之外获取所选节点(_nodemouseclick)。
我怎样才能得到它。 我不想在全局变量中保存节点然后使用它。
希望我能清楚地解释我的问题。
感谢您的期待。
答案 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。