需求:选择树的节点时,会触发某些事件。但是部分节点的处理比较特殊,不能选择。另外,前台选择的节点尽量不要跳来跳去。

几个知识点:

treeView.BeforeSelect事件,可以取消选择。

TreeViewCancelEventArgs e,e包含有属性Action、Node、Cancel。可以根据Action来判断BeforeSelect事件是由什么操作触发的。同样,Node获取当前的节点,通过Node的属性值也可以判断是否继续往下执行。属性Cancel为true时,不会继续往下执行。(注:至少不会出发AfterSelect事件)

e.Action,是一个枚举。有五个值:Collapse、Expand、Unknown、ByKeyboard、ByMouse。稍微理解一下,可以知道Collapse是折叠节点时的状态,Expand对应展开节点操作,ByKeyboard对应键盘选择操作,ByMouse对应鼠标选择操作,至于Unknown,不全是但包含treeView.SelectedNode = tn;对TreeView的SelectedNode属性赋值时的状态。

应用实例:当节点展开、折叠,以及节点为第一级的节点(也就是没有父节点)的情况下,取消选择事件;而对SelectedNode赋值的情况,不取消事件,但是也不执行BeforeSelect事件中的其他代码。

代码如下:

//切换节点
void treeAll_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{var tn = e.Node;//一层节点,展开,收缩等操作都不响应。if (tn.Parent == null|| e.Action == TreeViewAction.Collapse|| e.Action == TreeViewAction.Expand){e.Cancel = true;return;}//未知操作执行选择,但不执行下面的actif (e.Action == TreeViewAction.Unknown)return;Action act = () =>{//DoSomething
    };if (true) act();
}

转载请注明出处:http://www.cnblogs.com/icyJ/

转载于:https://www.cnblogs.com/icyJ/archive/2013/05/09/beforeselect.html

c# treeView 取消选择事件相关推荐

  1. 微信公众号关注/取消关注事件推送开发记录

    一.奉上官方文档 关注/取消关注事件 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/doc/offiaccount/Message_Managem ...

  2. datagridview取消默认选中_DataGridView点击空白处和失去焦点后取消选择和关闭默认选择第一行C#Winform...

    默认选择第一行,可以通过窗体的Load事件中调用Datagridview的ClearSelection来取消选择 也可以设置 Datagridview的CurrentCell = null; 还可以将 ...

  3. 多选标签,做筛选,uniapp,再点击取消选择项

    上面点击选择,下面显示选择的项,再次点击可以取消选择项,可多选,也是搜了很久,终于,一开始想用uview组件,uni-ui组件,坑挺多,看别人写的,终于搞出来了记录一下 <view class= ...

  4. JS 取消冒泡事件 兼容火狐IE

    function stopPro(e) {     if (e && e.stopPropagation) {       //W3C取消冒泡事件       e.stopPropag ...

  5. DX:ASPxGridView使用选择事件的前置条件

    首先把enablecallbacks属性设置为false. settingsbehavior下的processselectionchangonserver设置为true 选择事件必须要给ASPxGri ...

  6. c#中contextMenuStrip与datagridview使用CellMouseDown事件及treeview使用mousedown事件

    //对于datagridview使用CellMouseDown事件 private void dataGridView_CellMouseDown(object sender, DataGridVie ...

  7. java swing列表数据加监听,【Java Swing公开课|Java监听列表项选择事件怎么用,看完这篇文章你一定就会了】- 环球网校...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  8. java radio 不可选_在Java Swing中取消选择RadioButtons

    当显示一组JRadioButton时,最初没有选择任何一个(除非您以编程方式强制执行).我想要能够将按钮恢复到该状态,即使在用户已经选择了一个之后,即,不应该选择任何按钮. 然而,使用通常的嫌疑不会提 ...

  9. 重写render,利用ClientScript,在客户端注册select,回发到服务器,触发服务器端的行选择事件。...

    View Code 原文地址 http://edu.cnzz.cn/NewsInfo/28278.aspx#  1     //重写render,利用ClientScript,在客户端注册select ...

最新文章

  1. 初识hibernate小案例
  2. 干货 | 22道机器学习常见面试题目
  3. 解决RHEL sendmail服务启动慢
  4. 【Java】灵活使用自定义注解和反射
  5. c++ char*初始化_[零食时间]C/C++ 字符串全家桶(字符串表示/定义、字符串输入输出、易错点等)上半桶...
  6. 麒麟芯片或“绝版”,华为多系列手机涨价​;一加回应“刘作虎回归OPPO”;DBeaver 7.2 发布| 极客头条
  7. 获取文件夹以及子文件夹里面的所有文件
  8. java国际化程序创建属性文件_Java国际化(i18n)ResourceBundle类
  9. 机器学习笔记(《统计学习方法》李航and《机器学习》周志华)
  10. 计算机桌面的图标怎么删除,电脑桌面图标有箭头怎么去掉?
  11. Linux系统的安装与配置
  12. 非常不错的IOS学习网站
  13. 由手机号绑定的账号,都应设置更换手机号功能
  14. filters过滤器的使用方法
  15. 【数学】第一型曲线积分
  16. java打印任意边长的菱形
  17. Android 获得联系人并排序
  18. ICPC nangchan I. Max answer
  19. 看电影学英语--欧美经典电影
  20. BRVAH的BaseRecyclerViewAdapterHelper与MVVM模式优雅结合,Recyclerview如何在Databinding中快捷、方便地使用(二)

热门文章

  1. sqlserver 储存过程 批量更新_大白菜怎么储存过冬,好吃还不烂?掌握方法,其实很简单...
  2. java伪协议_JavaScript中伪协议 javascript:使用探讨
  3. JAVA经过两轮面试还能被刷吗_云从科技JAVA开发工程师面试:视频进行面试,前两轮技术面试 - 职朋职业圈...
  4. Bayesian Networks
  5. 2022.2.22显示器连接器引脚信号定义2
  6. CVPR 2018 SA-Siam:《A Twofold Siamese Network for Real-Time Object Tracking》论文笔记
  7. javascript 设计模式_开发者都应该了解的7种JavaScript设计模式
  8. python中函数的调用_慢步python,编程中函数的概念,python中函数的声明和调用
  9. python与人工智能的关系_python和人工智能之间的关系是什么?老男孩Python人工智能...
  10. CAD安装失败怎样卸载重新安装CAD,解决CAD安装失败的方法总结