2016-04-27 192 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 
     } 
    }