c# - Application.Exit() 未按预期工作

标签 c# winforms toolstrip

我有 2 个表单(mainlogin)。我用这段代码打开登录表单:

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/

相关文章:

c# toolstrip 不在 menustrip 下停靠

c# - ToolStrip 圆角

c# - 如何为 ContextMenuStrip 项设置图像?

javascript - 如何使用chart.js将来自mysql的数据显示为饼图?

c# - RDLC报告: Apply Filter to Report

.net - 当 SelectionMode=FullRowSelect 时,如何突出显示 DataGridView 中的当前单元格

c# - ToolStripDropDown 列表的水平分隔符

c# - 如何通过现有的 WebAPI 验证我的 MVC5 应用程序?

c# - 混合私有(private) NuGet 提要和 NEST 时“dotnet restore”失败

c# - 从面板图片库加载图片到图片框