Sfarfallio durante cancellazione componeti di una finestra

mercoledì 24 maggio 2006 - 14.27

Dampyr Profilo | Junior Member

Piccolo problema.
Sto realizzando una piccola applicazione in VB.net, nella quale, in funzione a eventi scelti dall'utente, vengono resi visibili o no dei pannelli.
Al momento in cui i pannelli vengono resi invisibili (visible = false) avviene uno sfarfallio nella zona dove sono disposti i componenti.
Presumo il tutto sia dato dall'operazione di repaint della zona interessata.
Vorrei sapere se esiste un modo per limitare al massimo questo sgradevole effetto.
ciao e grazie
... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...

Brainkiller Profilo | Guru

Ciao,
che tipo di controlli sono contenuti nei Panel ? Sono contenute anche Immagini ? A volte ho avuto questo problema quando erano contenute immagini caricate dentro Picture Box.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Dampyr Profilo | Junior Member

all'interno dei pannelli ci sono solamente delle label e dei campi textBox.
Visto che mi parli di immagini, molto probabilmente è colpa dell'immagine messa come sfondo nella finestra principale, una immagine di tipo jpg.
provo a toglierla e vedo cosa succede...
se fosse quella, ci sono dei modi per evitare lo sfarfallio?

... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...

Brainkiller Profilo | Guru

>all'interno dei pannelli ci sono solamente delle label e dei
>campi textBox.
>Visto che mi parli di immagini, molto probabilmente è colpa dell'immagine
>messa come sfondo nella finestra principale, una immagine di
>tipo jpg.

Esatto potrebbe essere quella.

>provo a toglierla e vedo cosa succede...
>se fosse quella, ci sono dei modi per evitare lo sfarfallio?

Dovresti provare a gestire il Repainting dello sfondo per conto tuo. Qui ci sono alcuni tips per migliorare le performance delle WinForms:
http://msdn.microsoft.com/msdnmag/issues/06/03/WindowsFormsPerformance/

Non è mai buona cosa inserire immagini di sfondo, specialmente quando sono pesanti in termini di bytes, per questo ti sconsiglio questa tecnica.



Ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Dampyr Profilo | Junior Member

>Dovresti provare a gestire il Repainting dello sfondo per conto
>tuo. Qui ci sono alcuni tips per migliorare le performance delle
>WinForms:
>http://msdn.microsoft.com/msdnmag/issues/06/03/WindowsFormsPerformance/
>
>Non è mai buona cosa inserire immagini di sfondo, specialmente
>quando sono pesanti in termini di bytes, per questo ti sconsiglio
>questa tecnica.

Grazie mille, do un'occhio meglio questa sera e poi faccio una prova!
Spero si possa risolvere quel problema, infatti uso l'immagine di sfondo sulla quale sono disegnati dei petali che utilizzo come bottoni sovrapponendo dei pannelli trasparenti.
Mi seccherebbe dover modificare il layout dell'applicazione per quel problema.
Grazie mille

... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...

Dampyr Profilo | Junior Member

Ho dato un'occhio alla pagina che mi hai linkato...
Se non ho capito male (maledetta quella volta che alle lezioni di inglese dormivo) la parte che mi interesserebbe maggiormente è quella riguardante "Painting Performance".
Ma come posso applicare il tutto al mio caso dei pannelli che compaiono e scompaiono?
A meno che sia possibile fare il repaint dell'immagine in backGround solo per la porzione dove c'erano i pannelli?
Se così fosse dovrei fare un overload del metodo OnPaintBackground passando come attributo il rettangolo da ridisegnare?


Dimmi se sono fuoristrada...
Grazie
... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5