2015-09-04 31 views
-2

我 只有在調用C#中的預關機功能

public void preShut() 
    { 
     saveLastPoint(DataTable A); 
     saveShutVoltage (DataTable A); 
     saveVehicleState (DataTable vStates); 
    } 

我想調用這個函數在應用程序窗口(或Alt + F4鍵或用鼠標點擊)閉幕的事件函數這個函數被稱爲我的應用程序應該關閉。 任何人都可以提出一個方法來做到這一點?

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if (string.Equals((sender as Button).Name, @"CloseButton")) 
     // Do something proper to CloseButton. 
    else 
     // Then assume that X has been clicked and act accordingly. 
} 

我得到了這個解決方案,但無法理解它。

+0

我能得到一個解釋,或只是下跌票? –

+0

Alt + F4方案沒有預先事件。如果用戶通過X按鈕關閉應用程序,則可以這樣做。否則,我建議你做其他軟件爲這種情況做的事情 - 按間隔自動保存。 – SimpleVar

+0

我懷疑人們會希望看到代碼或至少閱讀您迄今嘗試的描述。 – Jite

回答

3

如果您正在使用的WinForms不是已經有它

FormClosing定義的事件:如窗體被關閉時發生的FormClosing事件。當表單關閉時,它將被釋放,釋放與表單相關的所有資源。如果您取消此活動,表單將保持打開狀態。要取消表單的關閉,請將傳遞給您的事件處理程序的FormClosingEventArgs的Cancel屬性設置爲true。

並且如果你正在使用WPF那麼我們也有一個事件爲它

Closing:期末可處理時,正在關閉的窗口(例如,被稱爲關閉時)來檢測。此外,關閉可用於防止關閉窗口。要阻止窗口關閉,可以將CancelEventArgs參數的Cancel屬性設置爲true。

您還可以使用代表這個你可以閱讀my previous answer for it

+1

感謝你深入的解釋。這是一個模型答案。 –