【问题标题】:Button with an X at the upper-right corner of the form, how to catch this event @ C#窗体右上角带X的按钮,如何捕捉这个事件@C#
【发布时间】:2009-09-12 20:44:45
【问题描述】:

当我使用 X 按钮关闭表单时会触发哪个事件? 我想要仅在按下 X 按钮时触发的事件;我知道有一个 FormClosing 事件,但问题是每次关闭表单时它都会触发...... 当frm.close() 执行时它也会触发,我不希望这种情况发生。

【问题讨论】:

    标签: c# winforms events


    【解决方案1】:

    您可以检查 FormClosingEventArgs 参数的 CloseReason 属性。单击“X”按钮时为 CloseReason.UserClosing。

    【讨论】:

    • 正是,我想要的答案!
    【解决方案2】:

    没有特定事件连接到表单右上角的 X。

    改为使用表单的FormClosing 事件。它有一个 Cancel 参数,如果您不想关闭表单,您可以将其设置为 true。这允许您检查通过其他方式发生的表单关闭,例如单击“确定”按钮。

    【讨论】:

    • QueryUnload 事件在 WinForms 中是闻所未闻的。
    • @TimothyJohnLaird:谢谢。
    【解决方案3】:

    正如罗伯特所说,没有与“X”相关的特定事件,但您基本上有两个选项可用于解决您的问题。

    (i) Form Closing - 当您单击“X”但在关闭表单之前发生此事件。所以你可以在关闭表单之前使用这个事件处理程序来做一些事情。例如,您可以使用 e.Cancel(); 来阻止表单被关闭/销毁;

    (ii) Form Closed - 此事件在表单关闭时发生。

    问候

    【讨论】:

      【解决方案4】:

      我使用表单的OnClosing事件,也可以取消。

      【讨论】:

      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 2012-01-18
      • 2011-10-02
      • 2012-06-04
      • 1970-01-01
      • 2013-05-15
      • 2018-10-13
      相关资源
      最近更新 更多