簡體   English   中英

如何檢查Application.Exit()中的CancelEventArgs?

[英]How can I examine the CancelEventArgs from Application.Exit()?

在某些情況下,我在WinForms應用程序中調用Application.Exit()

Application.Exit()具有如下所示的重載:

Application.Exit(CancelEventArgs e)

並且文檔說e “返回應用程序內的任何表單是否取消了退出。”

但是,我不清楚如何檢查e 該方法返回void,並且e未定義為out變量。 我應該可以檢查一下嗎?

是的,我確實查看了有關Application.Exit()的其他問題,但是這些問題都沒有解決。 他們處理事件,而不是調用方法。

在調用Application.Exit之后,實例化CancelEventArgs變量並測試其Cancel屬性:

CancelEventArgs e = new CancelEventArgs();
Application.Exit(e);
if (e.Cancel)
{
    // Cancelled
}

您可以檢查e的原因是e是對您在方法調用中傳遞的CancelEventArgs對象的引用。 引用類型的變量不直接包含其數據。 它包含對其數據的引用。 當您傳遞引用類型參數 (在這種情況下為對CancelEventArgs對象的引用)時,被調用的方法能夠使用該引用來訪問CancelEventArgs對象的屬性,例如,可以將e.Cancel設置為true

在方法調用完成之后,情況是一樣的: e仍然是對您傳遞的CancelEventArgs對象的引用,現在您可以檢查其屬性以確定被調用方法是否更改了任何屬性。

編輯我從您的評論中看到還不清楚,所以考慮一下:將e傳遞為ref意味着被調用的方法可以將e更改為引用不同的CancelEventArgs對象。 它是否可以在現有的CancelEventArgs對象中設置屬性與它無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM