簡體   English   中英

如何在C#中關閉已打開的表單?

[英]How to close already opened form in c#?

如果事件一次又一次發生並且以前打開的表單尚未關閉? 然后存在問題,因為我們想在打開新表單之前關閉以前的打開表單。 為此,我做了一個功能

    frmItem a = new frmItem();
    public bool CheckForm()
    {
        Form form;

        form = Application.OpenForms[a.Text];
        if (form == null)
            return true;
        else
            return false;
    }

然后在btn_Click上我寫了這段代碼

private void buttonItem4_Click(object sender, EventArgs e)
    {
        frmAssets formSecond = new frmAssets();
        if (CheckForm())
        {
            formSecond.MdiParent = this;
            formSecond.Show();
        }
        else
        {
            MessageBox.Show("Form Already Open Exists!");
        }
    }

這向我顯示消息“表單已經打開存在!” 如果我已經打開表格,就可以了! 但是然后我應該如何在打開新表單之前關閉已經打開的表單...? 我嘗試了a.close(); 通過替換MessageBox.Show(“表單已經打開存在!”); 但沒有緣故。

通過Application.OpenForms進行檢查以檢查其是否打開,並且操縱MdiParent是非常危險的,尤其是MdiParent操縱低級WinAPI時。

我建議將要檢查並關閉的表單實例傳遞給父表單,然后可以檢查實例是否已打開並關閉它。

並且如注釋中所指出的,而不是此MdiParent和Show調用,請進行ShowDialog()調用。

暫無
暫無

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

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