TreeView双击节点而不改变节点的折叠/展开状态

最近项目中需要用到树控件TreeView,并且需要当双击某节点时,触发某事件,但由于每当双击节点的时候,该节点都会进行展开/折叠的转换,体验不是很好,所以就想办法将其折叠/展开屏蔽掉,只响应双击事件。

 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,粗略认为是双击,不去响应对应事件,即展开/折叠

posted on 2020-03-20 23:37  雷损  阅读(892)  评论(0编辑  收藏  举报

导航