2015-11-13 4 views
1

У меня есть ситуация в VB.Net, где у меня есть несколько текстовых полей внутри панелей.Как найти только обратную сторону для чтения текстового поля в vb.net?

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

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

Например,

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

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

+2

вы можете попробовать 'SystemColors, Control' Это может смутить пользователя, но поскольку * ваш * отключенный элемент управления не будет использовать цвет, который они привыкли видеть – Plutonix

ответ

1

Цвет берется из SystemColors collection.

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

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

+0

. Вы оба правы. Благодарю. – user2721815

+1

@ user2721815 надлежащее «спасибо» на SO - это нажать на галочку и перенести ответ – Plutonix