簡體   English   中英

Visual C#完全忽略FormClosing事件

[英]Visual C# completely ignoring FormClosing event

我的應用程序似乎完全跳過了Form_Closing事件,但我不確定為什么。 我試圖通過使用e.cancel並在關閉時顯示消息框來對其進行調試,但該消息框從不顯示,並且e.cancel不會將其取消。 我的代碼是

    public void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (isClosed == false)
        {
            e.Cancel = true;
            base.OnFormClosing(e);
            this.Hide();
            this.WindowState = FormWindowState.Minimized;
        }
        else
        {
            Application.Exit();
        }
    }

謝謝 :)

您的方法具有適用於FormClosing事件處理程序的簽名,但是您正在調用base.OnFormClosing ,該方法僅適用於OnFormClosing重寫。

選一個。 例如,覆蓋看起來像

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        if (isClosed == false)
        {
            e.Cancel = true;
            base.OnFormClosing(e);
            Hide();
            WindowState = FormWindowState.Minimized;
        }
        else
        {
            Application.Exit();
        }
    }

首先僅使用一個消息框確定您發生了正確的事件,然后檢查isclose的值,因為我懷疑它是正確的。

暫無
暫無

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

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