代码之家  ›  专栏  ›  技术社区  ›  sam

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

  •  -1
  • sam  · 技术社区  · 7 年前

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

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

    1. 有没有办法在不重新启动应用程序的情况下更改语言?

    2. 出现问题时 Application.Restart(); 执行 Formclosing 事件也引发,如下所示,因此应用程序将不会重新启动 并将提示退出消息,如果 Yes 兰奇会不会在不关闭旧的应用程序的情况下,用新语言复制另一份应用程序 现在。。有那么远的路吗 仅在这种情况下不执行事件?或者像我上面提到的广告第一点那样离开更好。

      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 回复  |  直到 7 年前
        1
  •  1
  •   Steve    7 年前

    如果您的问题只是为了避免在执行对的调用时给用户停止关闭的可能性应用程序。重新启动,则只需查看传递给窗体关闭事件处理程序的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;
            ....
        }
    }