2014-02-13 114 views
-1

我有這段代碼,我可以使用菜單條關閉並打開子窗體。我的問題是如何關閉特定的活動子窗體,如果我有多個活動的子窗體?關閉活動的mdi子女

private void fileMenu_Click(object sender, EventArgs e) 
{ 
    frmtview tv = new frmtview(); 
    if (ActiveMdiChild != null) 
    { 
     ActiveMdiChild.Close(); 
    } 
    else 
    { 
     tv.MdiParent = this; 
     tv.Dock = DockStyle.Left; 
     tv.Show(); 
    } 

} 


private void Home_Load(object sender, EventArgs e) 
{ 
    frmtview tv = new frmtview(); 
    tv.MdiParent = this; 
    tv.Dock = DockStyle.Left; 
    tv.Show(); 

} 
+0

是否要關閉活動的mdi子窗體或要關閉可能不活動的特定子窗體? – Shell

+0

我想要關閉一個特定的子表單 – arukiri123

+1

來關閉表單,您必須至少有一個表單或表單名稱的對象。如果您有表單名稱,那麼您可以通過調用Application.OpenForms [「formName」]來關閉該表單。 – Shell

回答

0

你是指所有打開的子窗口?如果是這樣,當打開/創建子窗口時,將該對象添加到列表<>(成員變量)。當點擊關閉菜單時,只需迭代列表中的所有項目並調用close方法即可。

List childControls = new List();

void Closeclick(.......) 
{ 
    foreach(UserControl uc in childControls) 
    { 
     uc.Close(); 
    } 
} 

void ActivateClick(.......) 
{ 
    HomeForm home = new HomeForm(); 
    childControls.Add(home); 
    home.Show();  
}