C # Пользовательский контроль перекрасить - PullRequest
0 голосов
/ 15 февраля 2011

У меня есть приложение C # с основной формой и несколькими пользовательскими пользовательскими элементами управления.

Когда я перемещаю основную форму, пользовательские элементы управления перекрашиваются, и они перерисовываются снова, когда я прекращаю перемещать основную форму.

Что я могу сделать, чтобы отключить эту перерисовку?

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Ответ на на этот предыдущий вопрос описывает, как использовать WM_SETREDRAW Win32 API для приостановки и возобновления рисования. Он включает в себя хороший класс-обертку; может быть, это поможет вам.

0 голосов
/ 02 марта 2011

Вы не должны принудительно аннулировать себя (). Я полагаю, вы делаете какую-то нестандартную рисование в элементе управления Внутри конструктора после InitializeComponent (); у вас есть

    SetStyle(ControlStyles.UserPaint, true);
    SetStyle(ControlStyles.AllPaintingInWmPaint, true);

0 голосов
/ 15 февраля 2011

Если это мерцание вас раздражает, вы можете попробовать установить для свойства DoubleBuffered значение true.

Кроме этого вы можете подписаться на событие перемещения форм и отключить рисование на дочерних элементах управления аналогично тому, что описано в этом вопросе ...

Посмотрите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...