2010-07-02 72 views
1

我有树形视图和每个节点显示的上下文菜单。 一个节点有选择。我现在将鼠标移动到另一个节点,并通过鼠标右键单击打开上下文菜单。现在存在的问题是,选择仍旧在旧的新节点上。 如何防止弹出菜单,如果用户以前没有通过鼠标单击选择选择节点?换句话说,我该如何实现:用户必须通过正常的鼠标点击来选择treenode,或者treenode自动地通过鼠标右键单击来选择treenode。Windows窗体treeview节点上下文菜单问题

回答

2

请尝试下面的代码,它提供了treenode的预选。

TreeNode treeNodeAtMousePosition = this.treeView1.GetNodeAt(this.treeView1.PointToClient(Control.MousePosition)); 
TreeNode selectedTreeNode = this.treeView1.SelectedNode; 
if (treeNodeAtMousePosition != null) 
{ 
    if (treeNodeAtMousePosition != selectedTreeNode) 
      treeView1.SelectedNode = treeNodeAtMousePosition; 
}