How to check if a form is loaded?

My user has requested to be able to get anywhere from anywhere in the application.  I have buttons on the forms that provide this ablity.  How can I check if a form is loaded?  If a form is already loaded I don't want to re-load it.
LVL 1
mlcktmguyAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
nichiaConnect With a Mentor Commented:
Calling for example Load Form2 will not cause the form to reload if it has already been loaded.  The Form_Load sub is called only when the form is either called the first time, or first unloaded, then called again.

If you still need to determine what forms are in memory, you can iterate the Forms collection:

Dim frm As Form
For Each frm In Forms
    If frm.Name = "Form2" Then
        Debug.Print "Form2 is Loaded"
    End If
Next

Hope it helps!
0
 
bingieCommented:
You can just use the .Show method - this will load the form if it is not already loaded.

MyForm.Show
0
 
EDDYKTCommented:
Or


Public Function IsLoaded(ByVal FormName As String) As Boolean
    Dim i As Integer

    On Error Resume Next
    IsLoaded = False
    For i = 0 To Forms.Count - 1
        If Forms(i).Name = FormName Then
            IsLoaded = True
            Forms(i).SetFocus
            Exit Function
        End If
    Next
End Function

Dim FrmD As form1
If (IsLoaded("form1") = False) Then
        Set FrmD = New form1
        FrmD.Show
    End If
0
 
mlcktmguyAuthor Commented:
Thank you nichia and EDDYKT both of your solutions look like they work.  I was implementing the solution provide by nichia when EDDYKT responded.  The nichia solution does work and it was provided first so I am awarding the points to nichia.
0
 
superileCommented:
Is there a method to check if a form is loaded in vb.net?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.