Мерцание экрана Windows Forms / DatagridView - PullRequest
4 голосов
/ 02 июля 2010

Кто-нибудь сталкивался с ситуацией, когда приложение .Net Windows Forms вызывало сильное мерцание на рабочем столе?

У меня есть приложение Windows Forms (.Net 3.5, C #) с представлением данных в пользовательском контроле.Иногда, при одновременном запуске других приложений (я вижу это с Louts Notes, но худшее поведение - это пользователь с Reuters Bridge Station), переключение на мое приложение, а затем на другое приложение вызывает мерцание всего рабочего стола, замораживая всевзаимодействие с пользователем, от нескольких секунд до минуты.(Все пользователи используют Windows XP Professional.) Это происходит даже с небольшим количеством данных в сетке. Я не делаю никаких пользовательских рисований в приложении, и я почти уверен, что ни один из моих кодов не запущен в это время, чтобы вызвать какие-либо обновления илиперерисовки.

Я уже включил двойную буферизацию, так что это не решение.

Одна интересная вещь, которую я обнаружил (на форуме MS), заключается в том, что установка TransparencyKey формы решит проблему - иногда.(специально для пользователей Louts Notes, но не для пользователей Bridge Station.) Все еще затрагиваемые пользователи обходят его, сводя к минимуму приложение после ввода данных, прежде чем переключаться на другие приложения.Буду очень признателен за любые идеи, так как я вырываю свои волосы из-за этого.И у меня не так много волос для начала.

YS

Ответы [ 2 ]

1 голос
/ 05 июля 2010

Если это происходит при отладке из Visual Studio, вы можете попробовать включить Отладка фреймворка и Трассировки , чтобы записывать записи журнала в окно «Вывод», этот метод весьма полезен для перехода к нижней части.странных проблем с Winforms.

После того, как вы нашли что-то, что, по вашему мнению, вызывается чрезмерно или излишне, вы можете зайти в точку останова и посмотреть в стек, чтобы увидеть причину проблемы.

0 голосов
/ 15 июля 2010

Используя школу поиска и устранения неисправностей для слепой белки, я, кажется, нашел гайку ... Я имею в виду обходной путь - я набрал аппаратное ускорение дисплея до минимума (чуть выше «Нет»).Это, вместе с настройкой TransparencyKey, похоже, что это решило мою проблему.

В конечном счете, хотя это указывает на проблемы с драйверами дисплея (вероятно, для нескольких мониторов), естьтакже проблема .NET, как 1) Проблема возникает только при запуске моей программы.2) Обновление драйверов на тестовой машине не решает проблему.

...