首先并不是每个事件的e参数都有上述两个属性。

e.Cancel:获取或设置指示是否应取消事件的值;e.Handled:获取或设置一个值,该值指示是否处理过此事件。

下面说说比较常见的场景:

1)e.cancel:

①窗口关闭,比如用户点击窗口右上角想关闭,但代码里弹出确认框让用户确认是否真的想退出,如果用户选择了否,则e.cancel = true即可;

②DataGridview单元格的编辑,如果想排除某些列的编辑操作,只需在CellBeginEdit事件中,判断如果当前单元格属于要排除的列,e.Cancel = true即可,也就不会执行CellEndEdit事件了;

③让TreeView控件指定节点的选中无效,如让根节点的选中无效,只需在TreeView控件的BeforeSelect事件中判断如果为根节点,e.Cancel = true即可,也就不会执行节点的NodeMouseClick事件了。

2)e.Handled:多用在过滤某些事件,比如键盘按键

①如要求文本框只能输入数字,那么当输入的是字母,则e.handled=true即可;

②DataGridView控件默认按下Delete键会删除选中的行,如果想实现按下Delete键时弹出确认框是否删除,点击“是”才删除数据库中对应的数据,相应的也删除DataGridview的选中行,点击“否”不删除数据库中对应的数据,也不删除DataGridview的选中行,只需在点击“否”时,e.Handled = true即可。e.Handled = true很关键,没有这句,点击“否”时虽然能控制不删除数据库中的对应数据,但DataGridview中的选中行却被删除了。

转载于:https://www.cnblogs.com/Scl891004X/p/6903022.html

C#中e.Cancel,e.Handled的区别与应用相关推荐

  1. 【DB笔试面试758】在Oracle的DG中,Switchover和Failover的区别有哪些?

    ♣ 题目部分 在Oracle的DG中,Switchover和Failover的区别有哪些? ♣ 答案部分 一个DG环境中只有两种角色:Primary和Standby.所谓角色转换就是让数据库在这两种角 ...

  2. sql语句中left join和inner join中的on与where的区别分析

    原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...

  3. 无法解析 list 中的方法 iterator_Python-list中的append()和extend()方法区别

    一.append()和extend()方法都是用来添加数据到list末尾的,两者的区别: append()添加的时候会把添加的数据当成一个整体进行添加,允许添加任意类型的数据 extend()添加的时 ...

  4. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  5. PHP中file_exists与is_file,is_dir的区别介绍

    PHP中file_exists与is_file,is_dir的区别介绍 作者: 字体:[增加 减小] 类型:转载 时间:2012-09-12 我要评论 很显然file_exists是受了asp的影响, ...

  6. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  7. SQL语法中drop,delete与truncate的区别

    SQL语法中drop,delete与truncate的区别 delete是DML语句,可以选择删除部分数据,也可以选择删除全部数据:删除的数据可以回滚:不会释放空间 drop是DDL语句,删除表结构和 ...

  8. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣

    mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...

  9. reg类型变量综合电路_verilog中reg和wire类型的区别

    verilog 中 reg 和 wire 类型的区别 reg 相当于存储单元, wire 相当于物理连线 Verilog 中变量的物理数据分为线型和寄存器型.这两种类型的变量在定义时要 设置位宽,缺省 ...

  10. Linux中内存buffer和cache的区别

    Linux中内存buffer和cache的区别 分类: LINUX 原文地址:Linux中内存buffer和cache的区别 作者:platinaluo 细心的朋友会注意到,当你在linux下频繁存取 ...

最新文章

  1. Golang的反射reflect深入理解和示例
  2. puppet安装常遇见的问题
  3. 中国大学MOOC 编译原理 第6讲测验
  4. 理解数据类型与数学运算:求和、温度转换2
  5. LeetCode 876. 链表的中间结点
  6. Python找出某元素的索引下标
  7. cnn文本分类python实现_CNN文本分类
  8. 请求zabbix_快速部署zabbix
  9. linux下实现web数据同步的四种方式(性能比较)
  10. 从冷战到深度学习,一文看懂机器翻译发展史
  11. POJ NOI0105-40 数1的个数
  12. 12月第1周网络安全报告:85.9万境内主机感染病毒
  13. ORACLE数据库数据迁移
  14. VMware 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案
  15. 中青杯数学建模竞赛是什么级别的比赛_2020年第三届中青杯全国大学生数学建模竞赛...
  16. 发票显示服务器不可用什么原因,增值税发票服务平台常见问题汇总:发票勾选需要注意哪些问题?...
  17. 无线桥接(副路由器连接主路由器,以实现WiFi范围扩大)
  18. python模拟生成微软序列号,python生成随机序列号
  19. TODO LIST案例
  20. Android Window悬浮窗窗口全屏(隐藏导航栏状态栏)

热门文章

  1. appium python自动测试 百度网盘_S35 移动App Appium自动化测试教程Appium+Python 百度云...
  2. 递归判断一个数是不是回文数
  3. Unable to install “xxxx”
  4. 基础集合论 第一章 集合与集合的运算
  5. 多源数据的融合发展现状与趋势(一)——多源数据介绍
  6. arm开发板源码编译mysql
  7. 【硬十宝典】——1.2【基础知识】开关电源各种拓扑结构的特点
  8. Open3DCGAL DSM(数字表面模型)
  9. java 框架注入漏洞修复_Mybatis框架下易产生SQL注入漏洞的场景和修复方法
  10. 电池pack结构_详解锂电池pack基础知识,18650锂电池pack工艺技巧总结分析