Как отключить перерисовку формы в C#?
С даблбуффером стало лучше.
попробуй че-нидь такое
ResizeRedraw = true;
//Раскомментируйте эту строку для .NET Framework 1.x
//SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint |ControlStyles.AllPaintingInWmPaint, true);
//Раскомментируйте эту строку для .NET Framework 2.0
//DoubleBuffered = true;
Это всё делается не в один приём?
В один. На деле, правда, в обратном порядке: пересоздаются кнопки, сменяется фон. С даблбуффером лучше, но всё равно слегка тормозит.
А как происходит перерисовка, если ты ещё не вышел из обработчика события?
Вот в этом и была часть моего вопроса, как это метод работает а что-то там на форме мерцает.
А как происходит перерисовка, если ты ещё не вышел из обработчика события?перерисовка в том числе делается и без обработчика событий
Invalidate - помечается форму, что ее надо перерисовать (в очередь ставиться wm_paint)
Update - прямо сейчас перерисовывает то, чтобы было помечено для перерисовки
Refresh - помечает все для перерисовки, и перерисовывает тут же
Это я знаю, но такого у меня нет. Если, конечно, такое поведение не прошито в стандартный класс контрол, т.к. не проверял рефлектором.
Вызываешь SuspendLayout ResumeLayout у формы?
Оставить комментарий
okis
Изменение значения свойства AutoValidate не помогло. У формы сменяется background, потом удаляются кнопки и добавляются кнопки. Кнопки при этом аццки мерцают.