The way I do it is if I want to only have 1 instance of a form on a screen at any one time is to declare a private reference to the form inside the MDI parent, and just use that.
e.g.
VB Code:
'At form declarations
Private m_Child As frmChild
'Later on inside a click event
If m_Child Is Nothing Then
m_Child = New frmChild
ElseIf m_Child.Created = False Then
'Form has been disposed, need to create a new instance
m_Child = New frmChild
End If
m_Child.MdiParent = Me
m_Child.Show()
m_Child.Activate()