У меня возникли некоторые эффекты мерцания, когда мои формы Windows Forms изначально загружались в Windows 8.1.
Сначала я попробовал несколько решений, связанных с включением DoubleBuffered, но, похоже, это не решило проблему. Позже я наткнулся на решение ниже, которое, по словам многих, устранило все их проблемы. Однако, когда я попробовал исправить это на своем компьютере с Windows 8.1, теперь он мигает черным квадратом.
Для дальнейшего исследования я попробовал пример кода из приведенной ниже ссылки MSDN. Однако это также показывает черный ящик при загрузке формы. Я попытался повозиться с визуальными настройками Windows 8.1 в «Дополнительные параметры системы» -> «Дополнительно» -> «Параметры производительности» -> «Визуальные эффекты», чтобы узнать, повлияли ли на это Aero или аналогичные функции прозрачности, но я по-прежнему появляется мигающий черный ящик.
Похоже, что ни один из комментариев в различных ветках по этому «исправлению» не был недавним. Мне было интересно, должно ли это «исправление» применяться к Windows 8 / 8.1, и если есть что-то еще, я могу попытаться получить форму и ее элементы управления, чтобы все они отображались одновременно, без какого-либо мерцания.
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}
Как исправить мерцание в пользовательских элементах управления