Visual Studio C#.Net中TreeView控件右鍵選擇節點問題處理
在做一個程序的過程中發現Visual Studio C# .Net 中進行WinForm下的TreeView控件的節點進行右鍵選擇并處理的時候出現異常:雖然控件上顯示右鍵點擊的節點被反選了,但是在程序中獲得的不是這個節點的信息。
后來通過詢問實驗室的FredQian,他告訴我鼠標右擊響應的時候TreeView控件沒有改變其選定的狀態,需要在鼠標事件中進行處理:檢測鼠標右鍵,如果右擊的是一個節點,就將該節點用代碼來實現選定即可。實現這個功能的代碼非常簡單:
- private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- if(e.Button==MouseButtons.Right)
- {
- TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);
- if(tn!=null)treeView1.SelectedNode = tn;
- }
- }
其中,treeview1 就是我們綁定快捷菜單的控件,GetNodeAt(x,y) 是這里最關鍵的一個方法。
Visual Studio C#.Net WinForm中TreeView控件右鍵選擇節點的問題就成功處理了。
【編輯推薦】