我有 2 个表单(main
和 login
)。我用这段代码打开登录表单:
toolStripProgressBar1.Value = 50;
toolStripStatusLabel_dynamic.Text = "Proberen toegang te verkrijgen...";
Login login = new Login();
login.ShowDialog();
do_login();
我在登录表单的顶部有一个工具条菜单,带有一个 eventhandler
,如下所示:
private void afsluitenToolStripMenuItem_Click(object sender, EventArgs e) {
Application.Exit();
}
但在两个窗体都关闭后,程序继续工作(它调用函数 do_login
。)但是变量没有设置,窗体消失了,所以 do_login
根本不起作用...
那么,当我单击工具条时,如何让程序的整个执行停止呢?
最佳答案
您将不得不解决它,因为 Application.Exit()
的定义如下。
Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.
所以它的意思是,一旦所有消息都被完全处理,它就会退出,但是由于您有一条消息需要在对话框关闭后处理,所以它必须先完成它。您正在正确执行退出,但您将必须检查 null
并在 do_Login()
中返回它是否为 null
方法。
关于c# - Application.Exit() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11827137/