我有一個mdi窗體,並有很多其他形式與菜單條鏈接。當我點擊任何其他菜單項時,應該有密切的以前打開窗體內的mdi父窗體。關閉窗體從mdi父母當我點擊打開任何其他形式
0
A
回答
1
呼叫,當你想打開一個新的形式,這種方法:
private void CloseAllForms()
{
Form[] formToClose = null;
int i = 1;
foreach (Form form in Application.OpenForms)
{
if (form != this) //this is form1
{
Array.Resize(ref formToClose, i);
formToClose[i - 1] = form;
i++;
}
}
if (formToClose != null)
for (int j = 0; j < formToClose.Length; j++)
formToClose[j].Dispose();
}
米蒂亞
2
這裏是一個更簡潔,現代的,手術的方式來關閉所有MdiChild形式:
static void CloseAllMdiChildForms()
{
foreach (var form in Application.OpenForms.Cast<Form>().Where(f => f.IsMdiChild).ToArray()) // ToArray necessary to build a snapshot
form.Close();
}
但是,這聽起來像你想要的只是在任何給定的時間只有一個孩子的形式打開。如果是這樣,MDI不適合這項工作。您可以構建UserControl
,然後將它們交換出主應用程序表單。
0
這是最好的一個:
static void CloseAllMdiChildForms()
{
foreach (var form in Application.OpenForms.Cast<Form>().Where(f => f.IsMdiChild).ToArray()) // The ToArray is necessary to build a snapshot
form.Close();
}
相關問題
- 1. 關閉窗體從mdi父母當我點擊打開任何其他形式
- 2. 我如何從子窗體發送數據到父母MDI窗體或父母MDI從C#中的子窗體?
- 3. 如何打開多種形式,而不關閉其他形式
- 4. 當點擊其他按鈕時關閉以前的窗體其他按鈕
- 5. 關閉從另一種形式的MDI子窗體
- 6. 以ShowDialog形式打開窗體但關閉窗體
- 7. 如何關閉父窗體,當孩子被打開
- 8. 如何使用主MDI父窗體上的MenuList打開MDI子窗體
- 9. 需要打開MDI子窗體從非MDI子窗體
- 10. 如何打開/關閉選項,當你點擊任何人「格」
- 11. jquery模式讓它關閉,當我點擊其他地方
- 12. 形式關閉彈出窗口點擊任何地方
- 13. 使用winforms,mdi,父母和子窗體,在父窗體下的指定空間中打開子窗體
- 14. 下範式創建mdi窗體,並在mdi窗體錯誤打開MDI子
- 15. 德爾福MDI - 處理打開/關閉/激活子窗體
- 16. 父窗體關閉調用子形式在其後臺工作
- 17. 從子窗體關閉父窗體
- 18. 窗形式 - 從child1形式MDI父傳值的child2形式 - vb.net
- 19. 關閉模式窗體並在點擊按鈕時打開一個新窗口
- 20. 如何關閉擴展菜單當我點擊其他菜單
- 21. 如何關閉MDI子窗體C#
- 22. MDI子窗體不允許其他子窗體獲得焦點
- 23. wxpython關閉父母點擊按鈕
- 24. 如何關閉之前的MDI子以父窗體
- 25. 如何從MDI子窗體(MDI應用程序)打開窗體對話框
- 26. 點擊打開一個箱子,同時關閉其他
- 27. 保持元素打開,在其他地方點擊時關閉
- 28. 點擊鏈接,關閉div,用動畫打開其他
- 29. 如果用戶點擊「X」按鈕,從子窗體關閉父窗體
- 30. 當關閉窗體關閉如何關閉所有打開的消息框
在那裏我必須寫上菜單項單擊事件的代碼???? – vivek 2011-03-26 12:41:49
'Array.Resize'真的嗎?使用一個動態大小的容器,比如'List