zoukankan      html  css  js  c++  java
  • C#中e.Cancel,e.Handled的区别与应用

    首先并不是每个事件的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中的选中行却被删除了。

  • 相关阅读:
    mysql重启.....
    tomcat双向认证
    tomcat单向认证
    tomcat ssi使用
    各种排序
    字符转换
    threeSum问题
    求出0~999之间的所有“水仙花数”并输出
    动态规划
    迷惑一天的代码
  • 原文地址:https://www.cnblogs.com/Scl891004X/p/6903022.html
Copyright © 2011-2022 走看看