2016-04-27 212 views
0

我正在制作一个C#Windows窗体应用程序。我试图在按下“X”或“关闭”按钮以使其不在应用程序中时弹出一个消息框。这是我迄今为止所做的,我不知道它有什么问题。当我点击关闭按钮时,运行消息框时不显示。任何帮助,将不胜感激。谢谢。C#Windows窗体应用程序关闭

private void MainWindow_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if (this.DialogResult == DialogResult.Cancel) 
    { 
     if (MessageBox.Show("Do you want to save changes to the data?", 
          "MktAuthorizationData", 
          MessageBoxButtons.YesNo) == DialogResult.Yes) 
     { 
      e.Cancel = true; 
      // Do Something 
     } 
    } 
} 
+1

您是否将事件处理程序代码绑定到Form_Closing事件? – Steve

+1

你肯定这种方法绑定到'MainWindow'的FormClosing事件吗? – AntiTcb

+0

我不知道这意味着什么。我不这么认为,我会如何去做。 – Satish

回答

6

您需要删除以下条件

if (this.DialogResult == DialogResult.Cancel) 

下面的代码应该工作

private void MainWindow_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if (MessageBox.Show("Do you want to save changes to the data?", 
         "MktAuthorizationData", 
         MessageBoxButtons.YesNo) == DialogResult.Yes) 
    { 
      e.Cancel = true; 
      // Do Something 
    } 
} 

如果您还没有订阅你需要有这个做这个事件InitializeComponent();

this.FormClosing += MainWindow_FormClosing; 
+0

谢谢它现在的作品 – Satish

0

您可以添加一个Button Close事件来关闭带有消息框的窗口窗体。

private void btnClose_Click(object sender, EventArgs e) 
    {   

    if (MessageBox.Show("Do you want to save changes to the data?", 
        "MktAuthorizationData", 
        MessageBoxButtons.YesNo) == DialogResult.Yes) 
     { 
     e.Cancel = true; 
     // Do Something 
     } 
    } 
相关问题