阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# 窗體關閉時提示是否關閉

Posted on 2007-11-16 15:02  宽田  阅读(6734)  评论(0编辑  收藏  举报
方法:
    一、調用窗體FormClosing事件
    二、在事件方法中編寫提示代碼

1、調用窗體FormClosing事件
        //窗體的Closing事件,窗體關閉之前引發此事件
        
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.memberFormClosing);

2、在事件方法中編寫提示代碼
        /// <summary>
       
/// 窗體關閉時引發的方法
       
/// </summary>
       
/// <param name="sender"></param>
        
/// <param name="e">FormClosingEventArgs類型參數,提供FormClosing事件的資料</param>
        private void memberFormClosing(object sender, FormClosingEventArgs e)
        {                 
            
//得到消息框中單擊按鈕后返回的的值(實際是作為一個DialogResult枚舉返回,它標識哪些按鈕被單擊)
            DialogResult key = MessageBox.Show(
                
"Are you sure want to quit",
                
"confim",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question
                );            
            
//判斷窗體是否要關閉
            e.Cancel = (key == DialogResult.No);            
        }
說明:
    此方法作用是顯示一個消息框,要求用戶確定它們是否退出應用程序。消息框包含「是」和「否」這兩個按鈕及一個問號
    其中:
        FormClosingEventArgs:提供FormClosing事件的資料。
        DialogResult:指定識別項以指示對話方塊的傳回值。 其成員有:

成員名稱

說明

Abort

對話方塊傳回值是 Abort (通常由標記為 [中止] 的按鈕傳回) 

Cancel

對話方塊傳回值是 Cancel (通常由標記為 [取消] 的按鈕傳回) 

Ignore

對話方塊傳回值是 Ignore (通常由標記為 [忽略] 的按鈕傳回) 

No

對話方塊傳回值是 No (通常由標記為 [] 的按鈕傳回) 

None

對話方塊傳回 Nothing。這表示強制回應 (Modal) 對話方塊繼續執行。 

OK

對話方塊的傳回值是 OK (通常由標記為 [確定] 的按鈕傳回) 

Retry

對話方塊傳回值是 Retry (通常由標記為 [重試] 的按鈕傳回) 

Yes

對話方塊傳回值是 Yes (通常由標記為 [] 的按鈕傳回) 


        MessageBox :顯示可以包含文字、按鈕和通知與指示使用者的符號的訊息方塊。
        其參數有:
 
MessageBox.Show (
    IWin32Window owner,
    
string text,
    
string caption,
    MessageBoxButtons buttons,
    MessageBoxIcon icon,
    MessageBoxDefaultButton defaultButton,
    MessageBoxOptions options,
    
string helpFilePath,
    HelpNavigator navigator,
    Object param
)

        參數說明:
owner         :IWin32Window 實作,將擁有強制回應對話方塊。
text          :要顯示在訊息方塊中的文字。 
caption       :要顯示在訊息方塊標題列中的文字。 
buttons       :其中一個 MessageBoxButtons 值,指定要在訊息方塊中顯示哪些按鈕。 
icon          :其中一個 MessageBoxIcon 值,指定那個圖示要顯示在訊息方塊中。 
defaultButton :其中一個 MessageBoxDefaultButton 值,指定訊息方塊的預設按鈕。 
options       :其中一個 MessageBoxOptions 值,指定訊息方塊使用的顯示及關聯的選項。如果要使用預設值,可以傳遞 
0
helpFilePath  :使用者按一下 [說明] 按鈕時所顯示說明檔的路徑和名稱。 
navigator     :其中一個 HelpNavigator 值。 
param         :當使用者按下 [說明] 按鈕時要顯示之說明主題的數字 ID。

傳回值         :其中一個 DialogResult 值。


       DialogResult key = MessageBox.Show(...)方法:是得到消息框中單擊按鈕后返回的的值(實際是作為一個DialogResult枚舉返回,它標識哪些按鈕被單擊)
        e.Cancel = (key == DialogResult.No):判斷窗體是否要關閉
        Cancel 意思為:是否取消該事件,為True時,窗體就不會關閉。為False(默認值)時,那麼事件結束時,窗體就會關閉