當我運行我的應用程序時,2個不同的表單被同時加載,但其中一個被顯示。現在我想要如果其中一個表單被關閉,其他隱藏的表單也應該關閉。任何建議。 沒有父 - 這些形式之間的親子關係。如何關閉內存中加載的兩個表單,當其中一個表單關閉時?
0
A
回答
0
假設這兩個表單都在同一個進程中,您可以讓第二個隱藏窗體處理可見窗體的FormClosed事件,並在可見窗體的FormClosed事件觸發時自行關閉它。
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
// The following does not need to happen in the Load of this form
// Create hidden Form
Form2 frm = new Form2();
// Attach hidden form to this form
frm.AttachTo(this);
}
}
public class Form2 : Form
{
public void AttachTo(Form frmMain)
{
frmMain.FormClosed += new FormClosedEventHandler(frmMain_FormClosed);
}
void frmMain_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
}
}
0
我打算假設這是一個參考這兩種形式的應用程序。如果情況並非如此,請告訴我。
鑑於這種假設,您有以下(僞代碼所示):
MyApplication
{
Form form1;
Form form2;
}
每個窗體的關閉事件可以關閉其他形式,如果它是不是已經關閉:
Form1_Close()
{
if(form2 != null)
{
form2.Close();
form2 = null;
}
}
然後:
Form2_Close()
{
if(form1 != null)
{
form1.Close();
form1 = null;
}
}
這是否符合您的要求?
相關問題
- 1. 如何在第三個表單的負載上同時關閉兩個表單?
- 2. 點擊一下關閉兩個表單?
- 3. 從另一個'表單'關閉'表單'
- 4. 表單關閉時的空閒內存
- 5. 如何關閉一個標籤時嵌入一個表單關閉?
- 6. 如何加快表單加載和表單關閉
- 7. 如何關閉當前表單並同時打開另一個表單
- 8. 當您關閉另一個表單時C#打印預覽會關閉
- 9. 表單關閉時的MessageBox
- 10. 關閉表單時的MessageBox
- 11. 我如何關閉表單並打開另一個表單?
- 12. 從另一個表格中關閉一個表單?
- 13. 當表格關閉時釋放內存
- 14. 如何關閉MessageDlg而不關閉Delphi中的表單?
- 15. 如何關閉(卸載)表單
- 16. 關閉一個子表格關閉其他子表格
- 17. 關閉當前表單並在Access中打開一個不同的表單?
- 18. 如何在關閉事件中關閉表單?
- 19. 當點擊表單提交時關閉一個模態
- 20. MsgBox關閉表單
- 21. Delphi - 表單關閉
- 22. 如何在qml中關閉表單?
- 23. 關閉表單後關閉線程?
- 24. VB.net:如何即時關閉表單?
- 25. 當被叫表單關閉時,將新數據加載到調用表中
- 26. 從另一個FormClosed事件中關閉一個活動表單
- 27. 如何在Visual C#中暫停表單,直到關閉另一個表單
- 28. 在自動關閉第一個表單的同時打開第二個表單
- 29. WinForms;檢測表單從另一個表單關閉
- 30. 關閉表單時的警告,如何停止表單
它們是從相同的過程還是兩個不同的程序啓動的? – keyboardP 2010-09-30 15:22:54
@keyboardP,來自同一應用程序的兩種不同的表單被加載並可互換使用。 – Muse 2010-09-30 15:31:50