Как сбросить свойство BackBolor TextBox для Windows. Forms? - PullRequest
14 голосов
/ 17 апреля 2009

Поведение по умолчанию свойства BackColor для TextBox выглядит следующим образом: когда включено, оно равно White (SystemColors.Window), когда отключено, это серый (не уверен, что это за SystemColor).

Если я изменю свойство BackColor, один и тот же цвет будет использоваться как для «Включено», так и для «Отключено». Как сбросить свойство BackColor (после того, как оно было изменено ранее), чтобы поведение вернулось к значению по умолчанию?

Я попытался установить его обратно на SystemColors.Window, но при отключении поле остается белым.

Ответы [ 4 ]

32 голосов
/ 17 апреля 2009

Если вы имеете в виду в конструкторе, вы можете просто щелкнуть в свойстве BackColor и удалить все, что там есть, а затем нажать клавишу ввода. Это вернет свойство к его значению по умолчанию.

Если вы имеете в виду код, вы можете установить для свойства BackColor значение Color.Empty , и это будет иметь тот же эффект.

6 голосов
/ 17 апреля 2009
TextBox.ResetBackColor()

По какой-то причине он не появляется в IntelliSense , но он есть и компилируется.

2 голосов
/ 17 апреля 2009

SystemColors.Window (обычно) белый. Используйте SystemColors.Control.

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

1 голос
/ 17 апреля 2009

В случае, если нет способа сбросить элемент управления, чтобы он вернулся к автоматическому изменению цвета фона при включении / отключении, я бы порекомендовал использовать событие UIElement.IsEnabledChanged, чтобы установить желаемое включение / отключение фоновые цвета. Я надеюсь, что это полезно!

...