Элементы управления Winforms - почему текст не становится серым, когда Enabled = false? - PullRequest
0 голосов
/ 20 июля 2011

Я получаю некоторые противоречивые действия, когда отключаю определенные элементы управления Button в моем проекте VS2008 Winforms.

Когда я устанавливаю Enabled = false, кнопки отключаются, но текст некоторых (хотя и не всех)из кнопок остается черным.

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

Вероятность того, что кнопка будет помещена вGroupBox, но я не уверен, что это всегда так.

Я предполагаю, что какая-то комбинация свойств Button и / или свойств Form или GroupBox, содержащих ее, вызывает это, но ямы не можем видеть какой-либо шаблон, который имеет смысл.

Редактировать: У нас есть свой внешний вид и мы устанавливаем BackColor содержащейся формы на другой цвет.

Кто-нибудь может объяснить, почему это может происходить?

1 Ответ

0 голосов
/ 21 июля 2011

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

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

Но оказывается, что есть простое исправление ...

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

Если вы установитесвойство BackColor кнопки для System -> ControlLight , это решит проблему - отключенные кнопки теперь выглядят отключенными.

Обратите внимание, что при сбросе BackColor возникает странная странность - свойство UseVisualStyleBackColor изменится на Trueложно.Но это, кажется, не имеет никакого эффекта и может быть изменено обратно на True, не оказывая никакого влияния на внешний вид.

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