2012-01-31 43 views
0

如果此問題重複,請接受我的道歉。我搜索了現有的問題和解決方案,但我沒有找到解決我的問題的確切解決方案在主窗體退出時無彈出窗口(阻止彈出窗口並強制關閉其他窗體)關閉的形式

我正在開發winform應用程序,我有一個主form1,它創建form2。 Form2具有關閉按鈕和過濾FormClosing()方法來提示確認彈出窗口,它完美地工作。

當我想關閉form1(這是主要的應用程序線程),並且我想關閉所有其他窗體,比如form2創建的form2,form3,而不實際提示form2,form3的確認彈出窗口。基本上,當關閉form1時,它應該強制關閉form1中顯示的所有其他表單,現在它會在退出應用程序之前顯示form2,form3的所有確認彈出窗口。

我感謝您的回覆, 問候 SKM

+0

你如何創建form2?你如何關閉form1? – 2012-01-31 11:23:46

回答

1

你需要注意的則傳遞給你的的FormClosing事件e.CloseReason屬性值。只有在e.CloseReason == CloseReason.UserClosing時才提示用戶。這還可以確保在用戶關閉Windows時不顯示對話框。例如:

private void Form2_FormClosing(object sender, FormClosingEventArgs e) { 
     if (e.CloseReason == CloseReason.UserClosing && !saved) { 
      switch (MessageBox.Show(this, "Save changes?", "Closing", 
        MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) { 
       case DialogResult.Yes: Save(); break; 
       case DialogResult.No: break; 
       case DialogResult.Cancel: e.Cancel = true; 
      } 
     } 
    } 

考慮始終保存更改,所以用戶不會從數據意外遭受損失。對程序啓動時重新打開的臨時文件說。

+0

它的工作,感謝噸漢斯 – skm 2012-02-01 11:56:45