TreeViewHitTestInfo hitInfo = null; private void treeView_MouseDown(object sender, MouseEventArgs e) hitInfo = treeView.HitTest(e.Location); nodeClicks = e.Clicks; private void treeView_BeforeExpand(object sender, TreeViewCancelEventArgs e) if (nodeClicks > 1 && hitInfo.Location == TreeViewHitTestLocations.Label) e.Cancel = true;

WinForm TreeView屏蔽双击节点展开

控制效果不错,很久之前用过又忘了,记录下。

int nodeClicks = 0;TreeViewHitTestInfo hitInfo = null;private void treeView_MouseDown(object sender, MouseEventArgs e){ hitInfo = treeView.HitTest(e.Location); nodeClicks = e.Clicks;}p...
C# 的 TreeView 的checkbox有个存在很久的bug, 双击 会改变checkbox状态但不触发AfterCheck和BeforeCheck,导致和子级联动时会有问题。 从https://download.csdn.net/download/tokyo2008/4636514下载的解决方法可以 屏蔽 在checkbox上的 双击 ,但是快速点击鼠标时的反应让我很难受,我作出了一个改进。 这是原版: public class TreeView Ex : TreeView
最近在做 winform 的权限系统,用到了 TreeView ,并且把CheckBoxs=true,即带复选框的 TreeView ,使用时想禁用某些 节点 ,如下图,第一个树的“ 节点 10”和“ 节点 2“: 请支持我的网站:http://www.haoy7.com 小游戏网站,好游戏网,http://www.haon8.com 好农网 发现TreeNode没有相关属性, TreeView 中的Che...
摘要:C#源码,控件类库, TreeView ,树形菜单 C# winform TreeView 树形菜单控件,源码编译于VS2008+SQL Sever 2005环境,只包括有代码部分,数据库部分作者未提供。 运行环境:Visual Studio2010
一个 WinForm TreeView ,某node的CheckBox初始状态为false,当 双击 这个node的checkbox时,会出现很奇怪的情况: 第一次 双击 checkbox,checkbox显示的状态会切换两次状态,unchecked-> checked-> unchecked,而AfterCheck事件仅触发一次,在AfterCheck事件中获取到的checkbox状态为checked。在这里checkbox状态已经和显示状态不一致了 以后每次 双击 ,checkbox显示的状态会出现一次切换,AfterCheck也会触发一次,并且checkbox显示的状态和值的状态仍然保持相反。 除上面这个问题外,还有一点,当 双击 treeview 的checkbox后,如果再去单击或 双击 该界面中除这个 treeview 外的任何部分,系统会忽略第一次点击事件。举例来说,一个窗口中,有一个 treeview ,还有一个ok按钮,当我 双击 这个 treeview 的一个checkbox后,再去点那个ok按钮,第一次点击是没有任何作用的,第二次以及以后的点击才会有效,包括点击最大化,最小化,以及关闭这种系统按钮。 为了解决以上问题,我重写了 TreeView 控件,在不影响其它地方的前提下,能很好的解决以上问题。我的环境:.Net framework4.0 + VS2005 + Win7 编译通过,并付执行程序。-
这是C#的一个漏洞,Microsoft在 TreeView 控件中自作主张地做成 双击 节点 时自动 展开 /折叠 节点 。然而如果用户自定义NodeMouseDoubleClick事件,同时又不希望改变结点的 展开 /折叠状态,就无法直接达到这一效果。可以通过曲线救国的方式达到了目的。 首先声明一个全局变量:  public int m_MouseClicks = 0; //记录鼠标在my TreeView 控件