zoukankan      html  css  js  c++  java
  • WinForm之 AcceptButton和CancelButton

    领导review我代码时说,像这类WinForm窗体,如果有确认或者取消按钮时要为窗体设置 AcceptButton和CancelButton。

     好像之前的工作中都没咋用过这玩意,这是啥属性呀,去浏览了MSDN中关于这两个属性的介绍 https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.form.acceptbutton?view=netframework-4.5

    大概作用就是 当用户在该界面下按下 Enter 键和ESC键时去自动去触发 AcceptButton和CancelButton属性里设置的按钮。但对于AcceptButton属性使用Enter触发,在焦点处于界面其他控件上时可能会导致触发设置的按钮失效,文档里以多行文本框处于焦点做了举例。

    本文主要是以案例的形式说一下这两个属性,在MSDN文档中没介绍的内容。我们知道当窗体以ShowDialog方式显示时,窗体关闭后会返回一个DialogResult枚举类型的结果(默认是DialogResult.None)。AcceptButton和CancelButton属性在这种情况存在一些区别。

     

     点击Form1的按钮以ShowDialog方式打开Form2窗体后按下 Enter 按键,啥反应也没有,按下 ESC 键后,窗体关闭了,弹出返回值 Cancel。

    说明 CancelButton设置的按钮触发后会设置窗体DialogResult为 DialogResult.Cancel,而AcceptButton什么都不会做。为了避免是按下 Enter 键没触发按钮的怀疑,增加按钮事件后,发现 MessageBox框的确显示了。

    所以如果窗体是以模态窗体的形式展示并设置了 AcceptButton属性时如果希望自动关闭窗体需要添加按钮事件,在按钮事件中明确告诉程序希望返回那种状态。例如下图所示:

    如果内容对您有帮助,可以扫码给我打赏,你的鼓励是我前进的动力。

     

    本文来自博客园,作者:业荒于嬉,转载请注明原文链接:https://www.cnblogs.com/FreeLoopPowter/p/15534510.html

    如内容对您有所帮助,还请不吝推荐一下!

  • 相关阅读:
    Java之this关键字的用法
    JavaSE 之 final 初探
    LinkedList 浅析示例
    HashSet 浅析示例
    ArrayList 浅析示例
    MySQL5.7 修改密码
    IE10 和 Chrome50 对日期 new Date() 支持的区别
    databtables 设置(显示)行号
    团队管理
    财务名称
  • 原文地址:https://www.cnblogs.com/FreeLoopPowter/p/15534510.html
Copyright © 2011-2022 走看看