Цвет фона неактивного элемента управления
-
18-09-2019 - |
Вопрос
Есть ли в Windows способ получить цвет, используемый в качестве цвета фона для неактивных элементов управления (TextBox
, и т. д.)?Или еще лучше, цвет границы тоже?
Это для Windows Forms, и я не смог найти ничего подходящего в SystemColors
.Нет такой вещи
Дело в точке.У меня есть текстовое поле, которое может быть недостаточно большим для содержащегося в нем текста, и оно отключено.Когда он отключен, пользователь не может прокручивать, чтобы просмотреть весь текст, и я даже не могу отобразить всплывающую подсказку. по понятным причинам.
Итак, что я сейчас сделал, так это установил TextBox
's ReadOnly
собственность true
что позволяет мне отображать всплывающие подсказки и прокручивать элемент управления.Теперь клиент хочет, чтобы текстовое поле выглядело так, как будто оно отключено; ReadOnly
это довольно неприятное свойство, поскольку оно все еще выглядит вроде можно редактировать.Поэтому я подумал, что установки правильного цвета фона может быть достаточно, чтобы обмануть большинство пользователей.Я не могу использовать произвольное значение серого, поскольку в этой форме есть и другие отключенные элементы управления, и, вероятно, будут заметны различия в цвете.Итак, есть ли способ узнать, как отображается отключенный элемент управления?Цвета фона и цвета границы или, по крайней мере, первого здесь должно быть достаточно, но я бы не хотел гадать.Речь идет, скорее всего, о платформах XP и Vista, с темами или без них.
Расчетное время прибытия: Игнорировать.Вопрос был глупым, и я должен был заметить ошибку с моей стороны раньше.Было немного странно, что один TextBox не придерживался серого фона.
Решение
Когда этот параметр отключен, текстовое поле имеет цвет фона. SystemColors.Control
и цвет переднего плана SystemColors.GrayText
.
Другие советы
Попробуй это:
treeView1.EnabledChanged += (s, o) =>
{
treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
};