2011-07-30 72 views
0

我有一個關閉應用程序的WPF控件(例如Button)。我不知道是否有一個定製的事件處理程序之間的差異,以關閉應用程序,默認關閉事件:自定義和默認關閉事件之間的區別

基本上是有以下兩個?:

private void Btn_Click(object sender, RoutedEventArgs e) 
{ 
    RibbonWindow.Close(); 
} 

protected override void OnClosed(EventArgs e) 
{ 
    base.OnClosed(e); 
} 

回答

1
之間的差異

用於關閉應用程序的自定義事件處理程序(Btn_Click)與默認事件(OnClosed)之間的區別在於,即使您使用自定義事件關閉應用程序,也會始終在最後調用默認事件。默認情況並非如此。一旦調用默認值,自定義將不會被調用,因爲顯然按鈕沒有被點擊。總之,應用程序關閉時(甚至在點擊關閉按鈕後必須需要事件)時應該處理默認事件,而您可以使用自定義事件詢問用戶are you sure?類型的東西

例如,假設您創建臨時文件在應用程序生命週期中,你必須刪除之前,存在的應用程序

現在,您可以將此代碼放入自定義按鈕點擊事件中,但如果用戶使用Alt + F4或通過除按鈕之外的任何其他方式關閉了應用程序,該怎麼辦?在這種情況下,您的按鈕代碼將不會被調用,但默認關閉事件將始終被調用,您可以安全地刪除臨時文件。

0

你提供的第一個例子是事件處理程序的事件引發bu按鈕,我推測。當用戶點擊按鈕時引發此事件。其次,是在WPF系統引發的事件的覆蓋。這是完全不同的故事。事件「來源」發生變化。

問候。

相關問題