C#中winform中有什么办法区分Close()和点击窗体右上角关闭按钮来关闭窗体

C#中winform中有什么办法区分Close()和点击窗体右上角关闭按钮来关闭窗体,第1张

在C#的WinForm程序中,有的时候需要判定关闭请求从哪里发出来的。比如是用户点击了右上角的“关闭”按钮,还是调用了WinForm.Close()方法。最典型的是要知道点击右上角的“关闭”按钮发出手配的事件。下面这个方法可以判断这点凳薯拦:

protected

override

void

WndProc(ref

Message

msg)

{

const

int

WM_SYSCOMMAND

=

0x0112

const

int

SC_CLOSE

=

0xF060

if

(msg.Msg

==

WM_SYSCOMMAND

&&

((int)msg.WParam

==

SC_CLOSE))

{

//

点击winform右上关枣胡闭按钮

//

加入想要的逻辑处理

return

}

base.WndProc(ref

msg)

}

//点击注销按钮事件里面孝高写:

if (MessageBox.Show("您确定要注销登录吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

 { 

    Application.Exit()                 郑慎碧  喊举       

    System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location)

 }

如灶烂或果你的异常处理添加在A1()中,那历岁么异常处理之后仅仅返回到A1()的上层调用函数,也隐伍就是A()中。

由于A1()已经处理了异常,所以对于A()这一层而言,并没有异常发生,所以程序会继续,从而A2和A3将继续被执行。

如果你想中止A2和A3,那么你的异常处理必须写在调用它们的函数,也就是A()中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8279695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存