TreeView雙擊節點而不改變節點的摺疊/展開狀態

最近項目中須要用到樹控件TreeView,而且須要當雙擊某節點時,觸發某事件,但因爲每當雙擊節點的時候,該節點都會進行展開/摺疊的轉換,體驗不是很好,因此就想辦法將其摺疊/展開屏蔽掉,只響應雙擊事件。spa

 1 // 記錄鼠標(左鍵)點擊次數
 2 private int cnt = 0;
 3 
 4 private void TreeViewName_MouseDown(object sender, MouseEventArgs e)
 5 {
 6     // 統計左鍵點擊次數
 7     if (e.Button == MouseButtons.Left)
 8         cnt = e.Clicks;
 9 }
10 
11 private void TreeViewName_BeforeCollapse(object sender, TreeViewCancelEventArgs e)
12 {
13     TreeNode selectedNode = TreeViewName.SelectedNode;
14 
15     if (selectedNode == null)
16         return;
17 
18     if (cnt > 1)
19         e.Cancel = true;
20     else
21         e.Cancel = false;    
22 } 
23 
24 private void TreeViewName_BeforeExpand(object sender, TreeViewCancelEventArgs e)
25 {
26     TreeNode selectedNode = TreeViewName.SelectedNode;
27 
28     if (selectedNode == null)
29         return;
30 
31     if (cnt > 1)
32         e.Cancel = true;
33     else
34         e.Cancel = false;
35 }                             

每次的鼠標(左鍵,也能夠針對右鍵,或是左右健一塊兒)點擊,若是次數大於1,粗略認爲是雙擊,不去響應對應事件,即展開/摺疊code

相關文章
相關標籤/搜索