[英]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.