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
控件