Rubrik: Oberfläche · Fenster | VB-Versionen: VB2005, VB2008 | 15.09.08 |
Prüfen ob Form geladen ist (MDI) Dieser Tipp ist für MDI-Forms. Es kann nur noch eine Instanz eines MDIChildren erstellt werden. | ||
Autor: Tobias Hägele | Bewertung: | Views: 13.330 |
ohne Homepage | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Im MDIParent wird diese Funktion aufgerufen:
' Form1 laden, falls noch nicht geschehen, ' bzw. anzeigen und in den Vordergrund bringen, falls ' bereits geladen FormManagement.OpenForm1(Me)
Es wird nun nach einem MDIChildren "Form1" gesucht. Wenn es gefunden wurde, wird es in den Vordergrund gebracht. Falls es nicht gefunden wurde, wird eine neue Instanz erzeugt und die Form1 als MDIChildren hinzugefügt.
Public Class FormManagement Private Shared Function FindForm(Of T)(ByVal f As Form) As Boolean Return (f.GetType Is GetType(T)) End Function Public Shared Sub OpenForm1(ByVal MDIParent As Form) Dim search As Form search = Array.Find(MDIParent.MdiChildren, AddressOf FindForm(Of Form1)) If search Is Nothing Then Dim f As Form = New Form1 f.MdiParent = MDIParent f.WindowState = FormWindowState.Maximized f.Show() f = Nothing Else If search.WindowState = FormWindowState.Minimized Then search.WindowState = FormWindowState.Maximized End If search.BringToFront() End If search = Nothing End Sub End Class