2015-04-26 2 views
2

Как закрыть форму MDI Chid, когда я хочу открыть новую.MDI Child form close on new open

На этом пути я открываю оба из них, но я хочу закрыть предыдущий, открывая новый.

Private Sub DostupniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DostupniToolStripMenuItem.Click 
     Dim frm As New FrmDostupniZaposlenici 
     frm.MdiParent = Me 
     frm.Show() 
     frm.WindowState = FormWindowState.Maximized 
    End Sub 

Private Sub DodajToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DodajToolStripMenuItem.Click 
    Dim frm As New frmDodajZaposlenika 
    frm.MdiParent = Me 
    frm.Show() 
    frm.WindowState = FormWindowState.Maximized 
End Sub 

У меня около 10 мДи детей.

Редактировать:

Новый код. Как предотвратить открывание формы по форме. Пример. Я хочу закрыть все остальные формы mdi, когда открыта новая форма. На этом пути, если я нажму на 4 кнопки в toolstrip, я получил 4 открытых формы. Я не хочу этого. Если я нажму кнопку 3, я хочу закрыть предыдущую форму и загрузить форму3.

Private Sub DostupniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DostupniToolStripMenuItem.Click 
    FrmDostupniZaposlenici.MdiParent = Me 
    FrmDostupniZaposlenici.Show() 
    FrmDostupniZaposlenici.WindowState = FormWindowState.Maximized 
End Sub 

Private Sub DodajToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DodajToolStripMenuItem.Click 
    frmDodajZaposlenika.MdiParent = Me 
    frmDodajZaposlenika.Show() 
    frmDodajZaposlenika.WindowState = FormWindowState.Maximized 
End Sub 

Private Sub IzmjeniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IzmjeniToolStripMenuItem.Click 
    frmIzmjenaZaposlenika.MdiParent = Me 
    frmIzmjenaZaposlenika.Show() 
    frmIzmjenaZaposlenika.WindowState = FormWindowState.Maximized 
End Sub 

Private Sub ObrisiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ObrisiToolStripMenuItem.Click 
    frmObrisiZaposlenika.MdiParent = Me 
    frmObrisiZaposlenika.Show() 
    frmObrisiZaposlenika.WindowState = FormWindowState.Maximized 
End Sub 
+0

Там нет особого смысла в использовании MDI, если вы только когда-либо хочет одного развернутого ребенка. Используйте свойство MdiChildren для поиска активных дочерних окон. –

+0

@HansPassant Я не уверен, что понял, что вы пытаетесь сказать. Вы думаете, что я могу использовать это, не выходя из формы ребенка MDI? Все, что я хочу, открывая новую форму MDI (например, нажмите Dodaj, она закроет все остальные формы, а затем откроет новую форму MDI) –

+1

Было ясно, что неясно, почему у вас проблемы с использованием свойства MdiChildren. Обновите свой фрагмент так что мы можем видеть, что вы делаете неправильно. –

ответ

1

Просто цикл через все открытые дочерние формы MDI и закрыть их ...

For Each f As Form In Me.MdiChildren 
    f.Close() 
Next 
Смежные вопросы