Установите ForeColor отключенного TextBox таким же, как его BackColor в C # - PullRequest
5 голосов
/ 12 декабря 2008

Как мне установить текущий цвет текста отключенного TextBox таким же, как его текущий цвет фона в C #?

Простое выполнение txtLala.ForeColor = txtLala.BackColor, похоже, не работает.

Ответы [ 3 ]

3 голосов
/ 12 декабря 2008

Это работает:

txtLala.Text = "Red";
txtLala.BackColor = System.Drawing.Color.Red;
txtLala.ForeColor = txtLala.BackColor;
txtLala.ReadOnly = true;

Попробуйте установить color до readonly. А также проверьте, как вы устанавливаете цвет!

EDIT

Попробуйте это

txtLala.Attributes.Add("style","background-color:Red;color:Red");

Если вы пытаетесь сделать его невидимым, вы знаете, что можете установить его как

txtLala.Visible = False;

РЕДАКТИРОВАТЬ II

Я наконец-то попробовал

txtLala.Enabled = false;

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

Почему бы не установить ReadOnly или Visible = False?

Возможно, у вас есть веская причина для Enabled = false

Но вы должны отметить:

Используйте свойство Enabled, чтобы указать или определить, работает ли элемент управления. Если установлено значение false, элемент управления затемняется , предотвращая ввод любого ввода в элемент управления.

Примечание. Возможность включить или отключить функцию всегда доступна. Однако затемнение и блокировка элемента управления работают только в Microsoft Internet Explorer версии 4 и более поздних.

Это свойство распространяется вниз по иерархии управления. Поэтому отключение элемента управления контейнера отключит все дочерние элементы управления в этом контейнере.

Примечание. Не все элементы управления поддерживают это свойство. Смотрите индивидуальный контроль для деталей.

0 голосов
/ 12 декабря 2008

Кажется, он работает только для TextBox, который только для чтения. Если он отключен (.Enabled = false). Это не похоже на работу.

0 голосов
/ 12 декабря 2008

Если это текстовое поле только для чтения, сначала вам нужно явно установить BackColor, тогда ваше заявление будет работать.

txtLala.BackColor = System.Drawing.SystemColors.Info;
txtLala.ForeColor = txtLala.BackColor;

Ссылка: http://bytes.com/groups/net-c/233961-read-only-textbox

Опять же, если это только для чтения, этикетка может быть лучше. Если вы пытаетесь скрыть это, возможно, установка .Visible = false была бы еще лучше.


Редактировать : Похоже, это общий вопрос в Интернете. Относительно winforms : Этот сайт предлагает опустить окно в рамку и установить Enabled = false на рамке, а не текстовое поле . Как только вы это сделаете, вы сможете сохранить контроль над передним цветом.

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