[vb.net] Dimensionare il form principale in base ad un altro form seco...

giovedì 27 settembre 2007 - 10.39

seven.7 Profilo | Junior Member

Ho creato un form pricipale dove ho inserito un menustrip, un toolstrip e un uno status strip nella parte centrale ho inserito un controllo panel e ho settato le poprietà:

(panel)
autosize: True
autosizemode: GrowAndShrink
dock: Fill

allo stesso modo ho settato il form principale:

(form principale)
autosize: True
autosizemode: GrowAndShrink

Adesso per cambiare form di visualizzazione nel panel ho inserito questo comando nei rispettivi controlli toolstrip:

Me.PagePanel.Controls.Clear()
PagePanel.Size = My.Forms.sez01ebay.Size
My.Forms.sez01ebay.TopLevel = False
My.Forms.sez01ebay.Parent = PagePanel
My.Forms.sez01ebay.Show()

Adesso però cosa accade? tutto si vede perfettamente solo che quando clicco su un comando toolstrip fa un effetto resize velocissimo dovuto alla riga Me.PagePanel.Controls.Clear(), infatti, svutando il panel il form si ridimensiona al contenuto del panel (vuoto) poi subito ritorno ad essere normale date che lo ripopolo con le istruzioni successive... se elimino la voce ovviamente si affiancano tutti form...

In sostanza questa è la soluzione che ho trovato io ma il punto è questo: realizzo tanti form quante sono le pagine (300x300 per esempio) e voglio che il form sia adattato a questa misura del controllo panel.

Poi ancora una cosa se gioco sulla visibilità di un form (segliendo un altra strada) dovrei creare tante istanze quante sono le form da visualizzare e quindi non sprecherei memoria?

thanks :D


----------------------

Ho risolto impostando l'autosize del form principale su false prima del select case :

Me.AutoSize = False
Select Case e.ClickedItem.Tag
Case 1
Me.PagePanel.Controls.Clear()
PagePanel.Size = My.Forms.sez01ebay.Size
My.Forms.sez01ebay.TopLevel = False
My.Forms.sez01ebay.Parent = PagePanel
My.Forms.sez01ebay.Show()
sezioneShow = e.ClickedItem.Tag
Case 2
Me.PagePanel.Controls.Clear()
PagePanel.Size = My.Forms.sez02automoto.Size
My.Forms.sez02automoto.TopLevel = False
My.Forms.sez02automoto.Parent = PagePanel
My.Forms.sez02automoto.Show()
sezioneShow = e.ClickedItem.Tag
End Select
Me.AutoSize = True

Thanks e cmq sono disposto ad altre soluzioni:D
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5