c# - 在特定条件下停止执行 FormClosing 事件?
问题描述
我制作了可以切换语言的多语言 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; } }
解决方案
如果您的问题只是为了避免在执行对 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;
....
}
}
推荐阅读
- python - 从 VBA 运行 Python 脚本,不工作
- php - 基于游戏时间的排行榜排名 MySQL PHP
- python - 尝试在 pandas 数据框中使用 explode 导致数据没有变化
- amazon-web-services - 如何在 Dynamodb 解析器请求映射中使用查询参数形成密钥?
- java - 为什么我不能使用子类中的受保护方法?
- scalardb - 如何在 ScalarDB 上实现应用程序级分页
- javascript - 如何终止 p5 草图?
- node.js - Node.js 回调。错误 [TypeError]:回调不是函数
- reactjs - 使用 axios 传递数组
- flutter - 使用 iOS 模拟器时是否可以使用电池电量信息?甚至示例应用程序崩溃