Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Problema con l’icona della Form MDI child quando è aperta maximized

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à:

image

Anche se in realtà la form Form2 ha una sua icona, per cui il risultato doveva essere:

image

 

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

Print | posted on venerdì 26 luglio 2013 16:04 | Filed Under [ Tips .Net Visual Studio ]

Powered by:
Powered By Subtext Powered By ASP.NET