I have been using this code to activate MDI child forms:

VB Code:
  1. Public Sub ShowSingleInstance(ByVal childType As Type)
  2.         For Each child As Form In Me.MdiChildren
  3.             If child.GetType Is childType Then
  4.                 child.Activate() 'already loaded so bring to foreground
  5.                 Return
  6.             End If
  7.         Next
  8.         Dim frm As New Form
  9.         frm = Activator.CreateInstance(childType) 'not loaded yet so create
  10.         frm.MdiParent = Me
  11.         frm.Show()
  12.     End Sub

If the MDI child is either not loaded or is behind another MDI child, its Form_Activated event will fire. However, if the MDI child is already the uppermost form, the Form_Activated event does not fire even if I explicitly call frm.Activate at the end of the above code.

How do I make the Form_Activated event fire regardless of the MDI child form's current state?