gpt4 book ai didi

c# - 当用户单击标题栏中的十字时,如何显示 MessageBox 提示

转载 作者:IT王子 更新时间:2023-10-29 04:42:20 24 4
gpt4 key购买 nike

我目前正在开发 C# Windows 窗体应用程序。

用户通过loginForm登录后,会被带到mainForm。

我想编写这样的代码,在用户单击主窗体标题栏上的叉号后,会提示用户“这将关闭应用程序。确认吗?”接着是是和否按钮。

如果是,将显示另一个框,“应用程序已关闭!”

如果没有,消息框将关闭,应用程序将继续运行。

我当前的代码是:

private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("This will close down the whole application. Confirm?", "Close Application", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
MessageBox.Show("The application has been closed successfully.", "Application Closed!", MessageBoxButtons.OK);
System.Windows.Forms.Application.Exit();
}
else
{
this.Activate();
}
}

但是它不起作用。

首先,我不知道为什么消息框会弹出两次以关闭整个事件。

其次,如果我单击“否”,表单也会关闭,我无法将其恢复。

最佳答案

要取消关闭表单,在您的 else 语句中您需要 e.Cancel = true;。在您的真实情况下,您不需要明确的 Exit。

试一试

private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("This will close down the whole application. Confirm?", "Close Application", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
MessageBox.Show("The application has been closed successfully.", "Application Closed!", MessageBoxButtons.OK);

}
else
{
e.Cancel = true;
this.Activate();
}
}

如果仅出于测试目的,我假设您的第二个 MessageBox 表示它已关闭。

您可能只想要。

private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("This will close down the whole application. Confirm?", "Close Application", MessageBoxButtons.YesNo) != DialogResult.Yes)
{
e.Cancel = true;
}
}

请注意,语句会检查他们是否没有点击"is",而不是他们是否点击了“取消”。这意味着如果他们点击对话框中的 x,则不会被视为确认。

编辑:如果 mainForm 不是主窗体

好的,我想我现在已经知道你要问的了。

我要做的是将上面第二个代码块中的代码放在 FormClosing 中,然后在 FormClosed 事件处理程序中有这个

private void mainForm_FormClosed(Object sender, FormClosedEventArgs e)
{
MessageBox.Show("The application has been closed successfully.", "Application Closed!", MessageBoxButtons.OK);
System.Windows.Forms.Application.Exit();
}

关于c# - 当用户单击标题栏中的十字时,如何显示 MessageBox 提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955244/

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