gpt4 book ai didi

c# - 无法关闭 C# 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:04 25 4
gpt4 key购买 nike

我正在开发一个 C# 应用程序,当用户单击 X 时,该应用程序会在托盘图标内最小化。像这样:

private void frmChat_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
Hide();
}

申请非常简单(只有一种形式)。问题是我无法正确关闭应用程序。当用户权限单击托盘图标并选择“退出”时,他应该能够关闭应用程序。问题是即使托盘图标被卸载并且表单被关闭,应用程序仍然显示在 Task Manager 中。作为一个活跃的应用程序。我将这样关闭应用程序:

private void chiudiToolStripMenuItem_Click(object sender, EventArgs e)
{
trayIcon.Dispose();
this.Close();
Application.Exit();
}

我在这里错过了什么?

最佳答案

我前段时间做过类似的事情。

您需要知道导致表单关闭的原因。因此,当您单击 X 时,会将特定原因传递给 FormClosing 事件。像这样:

private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
// don't close just yet if we click on x
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
this.Hide();
}
}

此外,我还有上下文菜单中的其他代码退出点击:

private void tsmiExit_Click(object sender, EventArgs e)
{
// close the application forefully
TerminateApplication();
}

/// <summary>
/// Closes the Application.
/// </summary>
private void TerminateApplication()
{
// need to forcefully dispose of notification icon
this.notifyIcon1.Dispose();

// and exit the application
Application.Exit();
}

编辑:

注意:当您单击 X 按钮时,关闭原因将是 CloseReason.UserClosing。调用 Application.Exit 时,将使用 CloseReason.ApplicationExitCall 再次调用 FormClosing。

结束编辑:

希望对你有帮助

安德斯

关于c# - 无法关闭 C# 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6250770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com