I have the solution for you Phrog,
From the main MDIParent Form, Open each of the child forms during the Form_Load event.
childFormMain.MdiParent = Me 'Sets all of the application forms as MDI Children
childFormAlarms.MdiParent = Me
childFormManual.MdiParent = Me
childFormMachineSetup.MdiParent = Me
childFormPartSetup.MdiParent = Me
childFormMain.Show() 'Show all of the children initially to load them in memory
childFormAlarms.Show()
childFormManual.Show()
childFormMachineSetup.Show()
childFormPartSetup.Show()
childFormMain.BringToFront() 'The children are displayed using the BringToFront method, so here we show the first page.
childFormMain.Focus()
Then on the button click method (which doesn't have to be an AHMI "FormChangeButton" btw), use the following logic
If Me.HasChildren = True Then
For Each frm As Form In Me.MdiChildren
If TypeOf (frm) Is frmManual Then
CType(frm, frmManual).BringToFront()
CType(frm, frmManual).Focus()
Me.Refresh()
Exit Sub
End If
Next
End If
Just change the "frmManual" to whatever form Name you're trying to show. Make sure to set each forms "Name" property as that's how we're calling them.
So the basic idea is to open them all up ahead of time and then just bring to front the form you want to see.
No flashy at all.