DataGridView мерцает, даже когда маскируется прозрачным окном - PullRequest
0 голосов
/ 02 марта 2011

У меня проблема с элементом управления DataGridView.Во время определенных операций сетка покрыта полупрозрачным диалоговым окном (чтобы указать пользователям операции и запретить пользователям нажимать кнопки и т. Д.).В это время сетка обновляется с частотой около 1 Гц.В Windows XP элемент управления DataGridView иногда «мерцает» над диалоговым окном маскирования на секунду - не достаточно времени, чтобы что-то сделать, но тем не менее немного раздражает.Я также заметил, что на моей машине для разработки, которая запускает Windows 7, проблема не обнаруживается.Я использую .NET v3.5.Любая помощь будет оценена.

Ответы [ 2 ]

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

Непрозрачность формы Win32 - это не настоящая непрозрачность, а копия изображений под ней.Это является причиной мерцания, а не того, что я когда-либо видел, как обойти.

Ваша проблема с Win7 также имеет ее - но поскольку этот компьютер и графическая карта обрабатываются намного быстрее, вы на самом деле невидя перерисовку.

WPF использует истинную непрозрачность и, как таковая, не будет иметь этой проблемы.

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

У меня была странная проблема мерцания только с Xp (хотя на этом сходство заканчивается). Попробуйте в форме, которая ставит перед вами задачу:

Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
    Dim cp As CreateParams = MyBase.CreateParams
    cp.ExStyle = cp.ExStyle Or &H2000000
    Return cp
End Get
End Property
...