首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当用户单击标题栏中的十字时,如何显示MessageBox提示

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

Stack Overflow用户
提问于 2011-10-31 22:40:51
回答 5查看 71.2K关注 0票数 20

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

用户通过loginForm登录后,将进入mainForm。

我想以这样一种方式编写代码:在用户单击mainForm中标题栏上的十字标记后,会出现一个提示,询问用户“这将关闭应用程序。确认吗?”然后是一个是和否按钮。

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

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

我当前的代码是:

代码语言:javascript
复制
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();
    }   
}

然而,它不起作用。

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

其次,如果我单击“否”,该表单也将关闭,并且我无法将其带回。

EN

回答 5

Stack Overflow用户

发布于 2011-10-31 22:46:25

这应该会对你有帮助

代码语言:javascript
复制
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;
    }
票数 3
EN

Stack Overflow用户

发布于 2011-10-31 22:42:31

您应该考虑在FormClosingEventArgs中取消属性:这应该是可行的:

代码语言:javascript
复制
  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

票数 1
EN

Stack Overflow用户

发布于 2011-10-31 22:49:23

要获得所需的功能,请尝试以下代码:

代码语言:javascript
复制
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;
    }   
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7955244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档