Visual Studio C#.Net中TreeView控件右鍵選擇節(jié)點(diǎn)問題處理
在做一個(gè)程序的過程中發(fā)現(xiàn)Visual Studio C# .Net 中進(jìn)行WinForm下的TreeView控件的節(jié)點(diǎn)進(jìn)行右鍵選擇并處理的時(shí)候出現(xiàn)異常:雖然控件上顯示右鍵點(diǎn)擊的節(jié)點(diǎn)被反選了,但是在程序中獲得的不是這個(gè)節(jié)點(diǎn)的信息。
后來通過詢問實(shí)驗(yàn)室的FredQian,他告訴我鼠標(biāo)右擊響應(yīng)的時(shí)候TreeView控件沒有改變其選定的狀態(tài),需要在鼠標(biāo)事件中進(jìn)行處理:檢測鼠標(biāo)右鍵,如果右擊的是一個(gè)節(jié)點(diǎn),就將該節(jié)點(diǎn)用代碼來實(shí)現(xiàn)選定即可。實(shí)現(xiàn)這個(gè)功能的代碼非常簡單:
- 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) 是這里最關(guān)鍵的一個(gè)方法。
Visual Studio C#.Net WinForm中TreeView控件右鍵選擇節(jié)點(diǎn)的問題就成功處理了。
【編輯推薦】