Почему WinForms не удается рисовать в некоторых случаях? - PullRequest
0 голосов
/ 08 августа 2011

Я отвечаю за поддержку приложения winforms, и иногда приложение не будет рисовать правильно. Иногда числовые обновления будут просто серыми (цвет элемента управления по умолчанию), но они все равно будут работать. В других случаях определенные кнопки не будут отображаться правильно.

Мы не написали никакого специального кода для рисования, никакого GDI +, нада. Поэтому, AFAIK, все должно обрабатываться Windows.

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

Итак, вопрос в том, почему WinForms иногда не рисует? Есть ли определенные вещи, на которые я должен смотреть?

Ответы [ 2 ]

4 голосов
/ 08 августа 2011

В Winforms пользовательский интерфейс и логика обычно выполняются в одном и том же потоке.

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

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

0 голосов
/ 08 августа 2011

В дополнение к тому, что сказал Эрно, я хотел бы добавить, что у меня были некоторые странные проблемы, когда одно из приложений winforms, над которым я работал, использовал цвет прозрачности для некоторых изображений, которые были общими в моих элементах управления.Если ваше приложение использует какие-либо изображения и вы установили цвет прозрачности, который используют ваши кнопки или элементы управления, происходят странные вещи.

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