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

  • 相关阅读:
    Java乔晓松oracle的多表查询
    定义一个地址固定的变量
    J2ME的表单元素及其事件
    J2me的异常处理和多线程
    [置顶] eclipse远程部署,静态文件实时同步插件
    newlisp debugger
    启用isqlplus
    ORA27101: shared memory realm does not exist
    windows下安装node.js及less
    em启动/关闭报错解决
  • 原文地址:https://www.cnblogs.com/xiaolongren/p/12510759.html
Copyright © 2020-2023  润新知