Check to see whether a form exists at runtime

 

If you want to check whether a form exists in your project at runtime
you can use the following method, you will need to ensure that you
import System.Reflection in order for this to work.

''' <summary>
''' This method deals with checking whether a form exists within the current project
''' </summary>
''' <param name="formName">The name of the form that you wish to check its existance</param>
''' <returns>True if the form exists and False if the form doesn't exist</returns>
''' <remarks></remarks>
Public Shared Function formExists(ByVal formName As String) As Boolean
    Dim myAssembly As Assembly
    Dim frm As Form = Nothing
    Dim assemblyName As String

    Try
        myAssembly = Assembly.GetEntryAssembly
        assemblyName = myAssembly.FullName.Split(",")(0)
        frm = myAssembly.CreateInstance(assemblyName & "." & formName)
    Catch ex As Exception
    End Try

    Return frm IsNot Nothing
End Function

Please note the reason that we are using Assembly.GetEntryAssembly rather than Assembly.GetExecutingAssembly is that if we was to put our code into a DLL for example, then the executing assembly would be the dll which in most cases wouldn’t contain the forms. Obviously if your forms and the code that gets the form are held in the DLL then you would want to use Assembly.GetExecutingAssembly.