Se si apre un form MDI child come maximized si ha un problema nella visualizzazione della sua icona.
Basta creare un progetto con una Form MDI container (IsMdiContainer=True), mettere un Menustrip ed inserire il seguente codice per l’apertura della form figlia Form2:
Private Sub NewToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewToolStripMenuItem.Click
Dim f As New Form2
f.MdiParent = Me
f.WindowState = FormWindowState.Maximized
f.Show()
End Sub
Il risultato sarà:
Anche se in realtà la form Form2 ha una sua icona, per cui il risultato doveva essere:
Per risolvere il problema ho trovato 2 modi (grazie alla stessa fonte):
Primo metodo
Giocare con il SuspendLayout del menustrip:
Private Sub NewToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewToolStripMenuItem.Click
Me.MenuStrip1.SuspendLayout()
Dim f As New Form2
f.MdiParent = Me
f.WindowState = FormWindowState.Maximized
f.Show()
Me.MenuStrip1.Visible = False
Me.MenuStrip1.Visible = True
Me.MenuStrip1.ResumeLayout()
End Sub
Secondo metodo
Inserire nella Load della form figlia la seguente riga di codice:
Me.Icon = New Icon(Me.Icon, Me.Icon.Size)
Per cui, nel mio esempio, avrei:
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Label1.Text = "Sono la form 2 creata alle " & Now.ToString
' Fix del problema icona form figlia
Me.Icon = New Icon(Me.Icon, Me.Icon.Size)
End Sub