Форма Windows не перекрашивается - PullRequest
2 голосов
/ 07 февраля 2011

Я новичок в C #, но давно программирую на VB6. У меня очень простой проект, который работает без ошибок. Однако есть одна проблема, связанная с самой Windows. Если я открываю какое-либо Окно (из любой другой программы), и это окно перекрывает мое приложение ... в тот момент, когда я закрываю это "другое окно", Окно моего приложения не перерисовывает ту часть, которая была перекрыта "другим окном".

То же самое происходит всякий раз, когда для Windows Vista появляется заставка Bubbles. Когда я нажимаю мышью, чтобы отменить заставку, угадайте, что ??? У меня разбросаны пузырьки по всему окну. В VB у нас был простой «Window.Refresh» и вуаля! Однако в C # это не работает. Я просмотрел форум (ы) и, кажется, есть упоминание о "обновлении темы". Я немного запутался в этом. Почему вещи не могут быть простыми ??

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Вы можете позвонить Form.Invalidate , чтобы аннулировать клиентскую область формы. Это заставит его получать сообщение о рисовании и перерисовывать себя.

Это похоже на метод обновления VB6.

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

0 голосов
/ 07 февраля 2011

Ничего особенного вам не нужно делать, чтобы перерисовать форму в C # (форма должна хорошо перерисовываться, когда вы возвращаете окно наверх).

Есть ли у вас какие-либо сторонние элементы управления в игре?Control.Refresh () существует в C #, если вы сможете вызывать его из самой формы (обычно this.Refresh() в коде вашей формы) или из любого элемента управления, у которого есть дочерние элементы (например, Panel).

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