簡體   English   中英

C#表格結束活動

[英]C# Form Closing event

我是學校的初級程序員,我們必須做一個大項目,我的表格有一個問題,特別是我自己制作的表格“閉幕活動”。

 private void sluitenToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (MessageBox.Show("Het programma wordt hiermee gesloten.\nBent u zeker dat u wilt sluiten en uitloggen?",
            "Waarschuwing , u staat op het moment het programma te sluiten",MessageBoxButtons.YesNo, 
            MessageBoxIcon.Exclamation) == DialogResult.Yes)
        {
            Application.Exit();
        }
    }

    private void window_Closing(object sender, FormClosingEventArgs e)
    {
        if(MessageBox.Show("Bent u zeker dat u wilt uitloggen?","Waarschuwing , u staat op het moment uit te loggen",
             MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
        {

            loginForm.Show();
        }
        else
        {
            e.Cancel = true;
        }

現在我的問題是當我使用sluitenToolStripMenuItem_Click並按下yes按鈕時它將關閉我的應用程序,這將觸發window_Closing事件。 但我只想在我的用戶點擊右上角的大紅色X而不是用戶點擊我的工具條項目時發生window_Closing事件。 提前致謝
此外,如果任何人有任何關於制作一個很好的GUI的技巧,那將很好;)(我來自比利時,很抱歉我的代碼中的荷蘭語)

您可以保留一個變量來存儲生成事件的狀態。

bool ClosedFromMenu = false;
private void sluitenToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (MessageBox.Show("Het programma wordt hiermee gesloten.\nBent u zeker dat u wilt sluiten en uitloggen?",
        "Waarschuwing , u staat op het moment het programma te sluiten",MessageBoxButtons.YesNo, 
        MessageBoxIcon.Exclamation) == DialogResult.Yes)
    {
        ClosedFromMenu = true;
        Application.Exit();
    }
}

private void window_Closing(object sender, FormClosingEventArgs e)
{
   if(!ClosedFromMenu)
   {
    if(MessageBox.Show("Bent u zeker dat u wilt uitloggen?","Waarschuwing , u staat op het moment uit te loggen",
         MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
    {

        loginForm.Show();
    }
    else
    {
        e.Cancel = true;
    }
   }
}

FormClosing事件中,您可以檢查sendere.CloseReason

例如,在FormClosing事件處理程序中的代碼FormClosing

if (e.CloseReason != CloseReason.UserClosing)
{
    //......
}

如果按Alt+F4或單擊[X]按鈕,將不會執行。

http://msdn.microsoft.com/en-us/library/system.windows.forms.closereason%28v=vs.110%29.aspx

暫無
暫無

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

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