最近项目中须要用到树控件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