Attualmente sto lavorando su un programma che utilizza una struttura abbastanza complessa di controlli di winform annidati che cambia dinamicamente mentre un utente effettua determinate selezioni. Per approfondire la specifica disposizione dei controlli sarebbe estesa a questa domanda.Come risolvere i problemi di sfarfallio del controllo delle winform nidificati
Quando viene effettuata una selezione, vengono apportati molti aggiornamenti al modello sottostante controllato dai controlli utente. Ciò comporta quindi una serie di modifiche corrispondenti nella dimensione/posizione/visibilità dei controlli visualizzati. Tutti questi cambiamenti provocano uno sfarfallio intensamente doloroso dei controlli sullo schermo. Ho bisogno di risolvere in qualche modo questo in modo che ogni volta che l'utente fa una selezione lo schermo è fondamentalmente congelato fino al completamento di tutti gli aggiornamenti di controllo.
Ho tentato di utilizzare i metodi Control.SuspendLayout/Control.ResumeLayout in molti diversi modi e modi e non riesco a eliminare lo sfarfallio pazzesco. Ho pensato che la sospensione del layout sul controllo root durante le modifiche avrebbe risolto il problema, ma sembra che questo SuspendLayout non aiuti quando vengono modificati i controlli figlio.
Devo utilizzare qualche altro approccio piuttosto che SuspendLayout? C'è un modo in cui posso eseguire il debug di SuspendLayout per capire perché non sembra essere in cascata a tutti i controlli figlio?
questa risposta ha funzionato per me http://stackoverflow.com/questions/487661/how-do-i-suspend-painting-for-a-control-and-its-children – wal