Как ускорить обновление BackColor of Label? - PullRequest
1 голос
/ 22 февраля 2011

РЕДАКТИРОВАТЬ:

Мне удалось обойти.Теперь на MouseEnter я установил фокус на кнопку и изменил MouseOverBackColor на текущий * кнопки BackColor;У меня также есть обработчик событий (в родительском контейнере кнопки) для GotFocus, который соответственно изменяет BackColor.Я понятия не имею, почему это работает таким образом, но я только заставил его работать в этой конкретной комбинации.Опять же, я ищу более эффективные способы сделать это, так что не забывайте об ответах.

Я сделал переопределение Button, и свойство Text теперь переопределяет пользовательский дочерний Label.Проблема в том, что к кнопке применены стили (изменение цвета при фокусировке / вводе мышью).

Я бы хотел, чтобы ярлык соответствующим образом изменил свой цвет, и я достиг этого двумя способами:

  1. Установите для метки BackColor значение Transparent
  2. Переопределите OnMouseEnter и OnMouseLeave, чтобы соответственно изменить BackColor метки.

Они оба работают;единственная проблема - небольшая задержка при изменении BackColor метки;это приводит к небольшому разрыву графики при изменении кнопки BackColor.Это не такая уж большая проблема, но это немного раздражает;Буду признателен за любой полезный совет, который вы мне дадите.

1 Ответ

2 голосов
/ 09 июля 2011

В зависимости от того, как часто ваше приложение обрабатывает насос сообщений Windows или насколько оно бездействует, вам может потребоваться вызвать Control.Update (), чтобы заставить .NET немедленно обновить рисунок элемента управления.

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.update.aspx

...