为了账号安全,请及时绑定邮箱和手机立即绑定

在特定条件下停止执行 FormClosing 事件?

在特定条件下停止执行 FormClosing 事件?

C#
largeQ 2022-01-09 11:02:49
我制作了可以切换语言的多语言 c# 应用程序当用户更改语言时,应用程序必须重新启动才能使应用程序更改语言现在我有一个问题和一个问题是否可以在不重新启动应用程序的情况下更改语言?Application.Restart();执行时出现问题,也Formclosing引发了如下所示的事件,因此应用程序将不会重新启动,并且会因退出消息而promet并关闭,如果Yes并且将使用新语言启动另一个应用程序副本而不现在关闭旧语言..是否存在Formclosing仅在这种情况下未执行的事件?或者更好地像我上面提到的广告点 1 那样离开。private void F0100_FormClosing(object sender, FormClosingEventArgs e){    DialogResult result;    result = MessageBox.Show("Are sure you want to exit?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading);    if (result == DialogResult.Yes)    {        Environment.Exit(1);    }    else    { e.Cancel = true; }}
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

如果您的问题只是为了避免在执行对 Application.Restart 的调用时让用户停止关闭,那么您需要做的就是查看传递给您的 Form_Closing 事件处理程序的 CloseReason


private void F0100_FormClosing(object sender, FormClosingEventArgs e)

{

    // Do not prompt the user if we have called Application.Restart

    if(e.CloseReason != CloseReason.ApplicationExitCall)

    {

        DialogResult result;

        ....

    }

}


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信