Obecnie pracuję nad programem, który wykorzystuje dość złożoną strukturę zagnieżdżonych formantów WinForm, które zmieniają się dynamicznie, gdy użytkownik dokonuje pewnych wyborów. Bardziej szczegółowe informacje na temat konkretnego układu kontrolek byłyby obszerne w przypadku tego pytania.Jak naprawić zagnieżdżone problemy z migotaniem kontrolek WinForm
Podczas dokonywania selekcji wiele aktualizacji jest wprowadzanych do modelu podstawowego, który jest kontrolowany przez formanty użytkownika. Powoduje to szereg odpowiednich zmian w rozmiarze/pozycji/widoczności wyświetlanych elementów sterujących. Wszystkie te zmiany powodują bardzo intensywne migotanie kontrolek na ekranie. Muszę jakoś to naprawić, aby za każdym razem, gdy użytkownik dokonał wyboru, ekran jest zasadniczo zamrożony, dopóki wszystkie aktualizacje kontrolne nie zostaną zakończone.
Próbowałem używać metod Control.SuspendLayout/Control.ResumeLayout w wielu różnych miejscach i sposobach i nie mogę wyeliminować szalonego migotania. Myślałem, że zawieszenie układu na kontrolerze root podczas zmian naprawiłoby problem, ale wydaje się, że ten SuspendLayout nie pomaga, gdy zmienione są formanty podrzędne.
Czy muszę stosować inne podejście niż SuspendLayout? Czy istnieje sposób, w jaki mogę debugować SuspendLayout, aby zobaczyć, dlaczego nie wygląda na kaskadę wszystkich kontrolek podrzędnych?
Ta odpowiedź zadziałała dla mnie http://stackoverflow.com/questions/487661/how-do-i-suspend-painting-for-a- control-and-its-children – wal