vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Oberfläche · Fenster   |   VB-Versionen: VB2005, VB200815.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ägeleBewertung:  Views:  13.330 
ohne HomepageSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.