Как найти задний цвет текстового поля только для чтения в vb.net?

У меня есть ситуация в VB.Net, где у меня есть несколько текстовых полей внутри панелей.

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

Однако по умолчанию «серый» цвет текстового поля только для чтения не одинаков во всех стилях ОС и рабочего стола.

Например;

Когда я проверяю цвет текстового поля только для чтения на своем ПК, его цвет — #D4D0C7, а точно такое же поле на компьютере другого человека в моем офисе (оба используют Windows 7, но с разными стилями рабочего стола) — #F1F1F1.

Итак, как мне установить цвет панели в соответствии с этим цветом текстового поля по умолчанию?


person John    schedule 13.11.2015    source источник
comment
вы можете попробовать SystemColors,Control Это может запутать пользователя, поскольку ваш отключенный элемент управления не будет использовать цвет, который они привыкли видеть   -  person Ňɏssa Pøngjǣrdenlarp    schedule 13.11.2015


Ответы (1)


Цвет берется из Коллекция SystemColors.

Похоже, что это SystemColors.Control, что вы можете увидеть, если вы установите текстовое поле на ReadOnly = True во время разработки и изучите свойство BackColor

Эти цвета могут меняться в соответствии с настройками профиля каждого пользователя.

person Matt Wilko    schedule 13.11.2015
comment
@user2721815 user2721815, спасибо за ТАК, чтобы нажать на галочку и проголосовать за ответ - person Ňɏssa Pøngjǣrdenlarp; 13.11.2015