在特定条件下停止执行 FormClosing 事件?
Stop the execution of FormClosing event at specific condition?
我制作了可以切换语言的多语言 c# 应用程序
- 当用户更改语言时,应用程序必须重新启动才能更改语言
现在我一问一题
有没有不用重启应用程序就可以更改语言的方法?
当 Application.Restart();
执行 Formclosing
事件时出现问题,如下所示,结果应用程序将不会重新启动
如果 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; }
}
如果您的问题只是为了避免在执行对 Application.Restart 的调用时让用户有可能停止关闭,那么您需要做的就是查看传递给 [=] 的 CloseReason 14=] 事件处理程序
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;
....
}
}
我制作了可以切换语言的多语言 c# 应用程序
- 当用户更改语言时,应用程序必须重新启动才能更改语言
现在我一问一题
有没有不用重启应用程序就可以更改语言的方法?
当
Application.Restart();
执行Formclosing
事件时出现问题,如下所示,结果应用程序将不会重新启动 如果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; } }
如果您的问题只是为了避免在执行对 Application.Restart 的调用时让用户有可能停止关闭,那么您需要做的就是查看传递给 [=] 的 CloseReason 14=] 事件处理程序
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;
....
}
}