2010-07-02 69 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; 
}