我目前正在开发一个C#窗口窗体应用程序。
用户通过loginForm登录后,将进入mainForm。
我想以这样一种方式编写代码:在用户单击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();
}
}
然而,它不起作用。
首先,我不知道为什么消息框会弹出两次,以便关闭整个消息框。
其次,如果我单击“否”,该表单也将关闭,并且我无法将其带回。
发布于 2011-10-31 22:46:25
这应该会对你有帮助
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Are you sure you want to close?", "Close", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
e.Cancel = true;
}
发布于 2011-10-31 22:42:31
您应该考虑在FormClosingEventArgs
中取消属性:这应该是可行的:
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;
}
}
http://msdn.microsoft.com/en-us/library/system.windows.forms.formclosingeventargs.aspx
发布于 2011-10-31 22:49:23
要获得所需的功能,请尝试以下代码:
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);
//no need to do anything here.
}
else
{
e.Cancel = true;
}
}
https://stackoverflow.com/questions/7955244
复制相似问题