當您點擊「X」按鈕並讓父窗體知道它已關閉時,您如何檢查MDI子窗體的關閉事件?MDI子窗體C#
Q
MDI子窗體C#
0
A
回答
4
你可以簡單地聽在MDI的FormClosed事件。
var childForm = new ChildForm();
childForm.FormClosed += new FormClosedEventHandler(form_FormClosed);
childForm.Show();
0
在窗體的FormClosing事件中,你可以做
TheMainForm form = (TheMainForm)this.MdiParent()
form.AlertMe(this);
0
從MainForm的內連接一個封閉的事件給childform
Form mdiChild = new Form();
mdiChild.MdiParent = this;
mdiChild.Closed += (s, e) => { //... };
mdiChild.Show();
沒有檢查代碼,但不應該是很難
0
好了,下面的代碼演示瞭如何父窗體確認子表單是否已關閉,並且還可以識別是否有任何新的子表單添加到該父表單中。
private List<Form> ChildFormList = new List<Form>();
private void MyForm_MdiChildActivate(object sender, EventArgs e)
{
Form f = this.ActiveMdiChild;
if (f == null)
{
//the last child form was just closed
return;
}
if (!ChildFormList.Contains(f))
{
//a new child form was created
ChildFormList.Add(f);
f.FormClosed += new FormClosedEventHandler(ChildFormClosed); // here the parent form knows that that child form has been closed or not
}
else
{
//activated existing form
}
}
private void ChildFormClosed(object sender, FormClosedEventArgs e)
{
//a child form was closed
Form f = (Form)sender;
ChildFormList.Remove(f);
}
相關問題
- 1. C#窗體窗體:Mdi父窗體和子窗體問題
- 2. WinForms MDI子窗體
- 3. 需要打開MDI子窗體從非MDI子窗體
- 4. C中mdi父項中的子窗體#
- 5. MDI窗體在C#父和子
- 6. 如何關閉MDI子窗體C#
- 7. Windows窗體中的MDI子窗體
- 8. 如何使用MDI父窗體制作mdi子窗體?
- 9. MDI子窗體不顯示
- 10. MDI子窗體加載
- 11. Mdi子窗體單實例
- 12. 我如何從子窗體發送數據到父母MDI窗體或父母MDI從C#中的子窗體?
- 13. C#將MDI父窗體的值傳遞給子窗體
- 14. 下範式創建mdi窗體,並在mdi窗體錯誤打開MDI子
- 15. MDI窗體對接子窗口
- 16. 如何從另一個MDI子窗體關閉特定的MDI子窗體子窗體
- 17. MDI子窗體不允許其他子窗體獲得焦點
- 18. 如何從MDI子窗體(MDI應用程序)打開窗體對話框
- 19. 如何使用主MDI父窗體上的MenuList打開MDI子窗體
- 20. 的Windows MDI子窗體標題欄
- 21. 德爾福MDI創建子窗體
- 22. MDI子窗體的繪畫問題
- 23. MDI子窗體不保持開放
- 24. mdi子窗體最大化windowstate - BorderStyle
- 25. 關於PropertyStore和MDI子窗體
- 26. Winforms MVP顯示mdi子窗體
- 27. MDI子窗體開始位置問題
- 28. 兩個MDI子窗體相互干擾
- 29. MDI父子窗體位置問題
- 30. MDI子窗體之間的偏移
C#中沒有.AlertMe()方法,我無法找到MDiParent方法,只有一個屬性。 – NexAddo
你會創建你自己的,公開的 –