Установите ForeColor отключенного TextBox таким же, как его BackColor в C #

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

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

12.12.2008 12:24:43
Могу ли я спросить, почему вы хотите это сделать? (может быть более простой подход для достижения результатов, которые вы ищете)
Richard Ev 12.12.2008 12:26:48
На самом деле все, чего я хотел добиться, - это сделать текстовое поле бесполезным. По какой-то причине я не могу просто установить его .Text пустым, потому что это повлечет за собой слишком большие изменения в других местах, и я бы не стал идти по этому пути.
Hao Wooi Lim 12.12.2008 12:39:41
Это ASP или winforms?
Michael Haren 12.12.2008 12:59:09
Поместите этот второй комментарий как РЕДАКТИРОВАТЬ, пожалуйста. Вы должны использовать метод Add.Attributes, описанный ниже
inspite 12.12.2008 14:52:18
3 ОТВЕТА

Если это текстовое поле только для чтения, вам сначала нужно явно установить 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 на рамку, а не текстовое поле . Как только вы это сделаете, вы сможете сохранить контроль над передним цветом.

0
12.12.2008 13:06:59

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

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

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

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

Попробуй это

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 и более поздних.

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

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

3
12.12.2008 13:21:21

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

0
12.12.2008 12:35:36
это с #, да, то, что он говорит, правда.
inspite 12.12.2008 12:58:17
C # может означать ASP.NET или Winforms ... разница важна
Michael Haren 12.12.2008 13:09:20
Ах, хорошо, я тоже склоняюсь к Winforms.
inspite 12.12.2008 13:52:33