Allow only one instance of MDI child in your VB.NET MDI application

I have encountered a problem in class today, we needed our Contact Manager application only to run one instance of every MDI child form, so the user will not be able to start unlimited(more than 1) number of Contacts form, or any of the settings forms. I have binged the solution and found a piece of code that allows something like that, but as i am teaching VB.NET here, i had to rewrite it from C# to VB.NET. The original C# Code provided by Roy Osherove is HERE
Here is the VB.NET code i have rewritten from Roy’s version:

Imports System
Imports System.Windows.Forms
Imports System.Collections.Specialized
Public Class MdiFormLoader
    Private m_InitializedForms As HybridDictionary = New HybridDictionary()
    Public Sub LoadFormType(ByVal formType As Type, ByVal mdiParentForm As Form)
        If (IsAlreadyLoaded(formType)) Then
            Return
        End If
        FlagAsLoaded(formType)
        Dim frm As Form = Activator.CreateInstance(formType)
        frm.MdiParent = mdiParentForm
        AddHandler frm.Closed, New EventHandler(AddressOf FormClosed)
        frm.Show()
    End Sub
    Private Sub FlagAsLoaded(ByVal formType As Type)
        m_InitializedForms(formType.Name) = True
    End Sub
    Private Sub FlagAsNotLoaded(ByVal formType As Type)
        m_InitializedForms(formType.Name) = False
    End Sub
    Private Function IsAlreadyLoaded(ByVal formType As Type) As Boolean
        Return If(m_InitializedForms(formType.Name), m_InitializedForms(formType.Name) = True)
    End Function
    Private Sub FormClosed(ByVal sender As Object, ByVal e As EventArgs)
        Dim closingForm As Form = sender
        RemoveHandler closingForm.Closed, New EventHandler(AddressOf FormClosed)
        FlagAsNotLoaded(sender.GetType())
    End Sub
End Class

You can call your form by using these 2 lines:

Dim _formLoader As New MdiFormLoader()
_formLoader.LoadFormType(GetType(ContactsMain), Me)