2009-02-26 3 views
6

В C#, я создаю окно формы для LAN-мессенджера с двумя текстовыми полями. Мне нужно создать конкретное текстовое поле как доступное только для чтения, но любой текст, представленный ему, выглядит серым, что нежелательно. Есть ли способ предотвратить это?Текстовое поле только для чтения в C#

ответ

0

Серый цвет указывает на состояние ReadOnly текстового поля. Это визуальная индикация для пользователя, которому не нужно вводить текст, чтобы обнаружить, что текстовое поле фактически отключено.

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

6

Вы можете заменить его на этикетке или на текстовое поле в случае KeyPress, установите вручению верно:

void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = true; 
} 
+3

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

+0

Согласен, но кажется, что человек, задающий вопрос, был обеспокоен серым текстом в отключенном текстовом поле, это проще, чем наследование и переопределение события рисования. – benPearce

+0

ReadOnly = true еще проще –

2

Вы можете установить цвет текста, установив TextboxForeColor имущество.

Например:

myTextBox.ForeColor = Color.Black

22

Я хотел бы использовать Textbox и установить ReadOnly к истинному, ForeColor к Color.Black и BackColor к Color.white. Таким образом, вы все равно можете выбрать текст и скопировать его с помощью Ctrl-C.

+0

Старая нить, но я нашел это полезным. Текстовое окно выглядит нормально, за исключением того, что вы не можете ввести его. Ура! – Anders

1

Чтобы сохранить текстовое поле белым (или окном), когда оно доступно только для чтения, вы должны явно установить для свойства BackColor значение Window. Чтобы сделать это, вы должны сначала установить BackColor на другое значение, а затем вернуться к окну. Свойство backcolor должно быть жирным, что означает, что оно больше не является значением по умолчанию.

Смежные вопросы