Avete mai provato da una Windows Form MDIParent temporanemanete invisibile a fare lo Show di un MDIChild? Fin qui nessun problema, ma se vi trovaste all'interno di un altro thread e doveste fare lo Show del Child usando MDIParent.Invoke?
Ottereste una bella:
Eccezione non gestita di tipo "System.StackOverflowException" in mscorlib.dll
Cause: ...boh...
Possibili soluzioni:
Ereditate le vostre Form MDIChild da questa:
Public Class BaseMDIChild
Inherits System.Windows.Forms.Form
Public Shadows Sub Show()
If Not Me.MdiParent Is Nothing Then
If Me.MdiParent.Visible Then
MyBase.Show()
Else
AddHandler Me.MdiParent.VisibleChanged, DelParentVisibleChanged
End If
End If
End Sub
Private DelParentVisibleChanged As EventHandler = AddressOf ParentVisibleChanged
Private Sub ParentVisibleChanged(ByVal sender As Object, ByVal e As EventArgs)
If Me.MdiParent.Visible Then
Me.Show()
RemoveHandler Me.MdiParent.VisibleChanged, DelParentVisibleChanged
End If
End Sub
End Class