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

我制作了可以切换语言的多语言 c# 应用程序

  1. 当用户更改语言时,应用程序必须重新启动才能使应用程序更改语言

现在我有一个问题和一个问题

  1. 是否可以在不重新启动应用程序的情况下更改语言?

  2. 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; }

}


largeQ
浏览 140回答 1
1回答

阿晨1998

如果您的问题只是为了避免在执行对 Application.Restart 的调用时让用户停止关闭,那么您需要做的就是查看传递给您的 Form_Closing 事件处理程序的 CloseReasonprivate 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;        ....    }}
打开App,查看更多内容
随时随地看视频慕课网APP