2015-04-18 4 views
0

Мне кажется, что эта часть моего кода не работает. Целью этого фрагмента кода является добавление пронумерованного списка каждый раз, когда пользователь нажимает «ENTER». Вот и пример того, что я имею в виду.Добавление текста в текстовое поле с KeyEventArgs. C#

0) 10100 [Пользователь нажимает клавишу ВВОД]

1) (курсор находится здесь)

Вот код, у меня есть. meowbox - многострочное текстовое поле.

protected override void OnKeyDown(KeyEventArgs e) 
{ 

    if (e.KeyCode == Keys.Enter) 
    { 

     meowbox.Text += i + ")"; 
     ++i; 
    } 

    base.OnKeyDown(e); 
} 
+0

Попробуйте meowbox.Text + = "\ n" + i.ToString() + ")"; \ N создает новую строку перед методом i.ToString(). –

+0

Неплохо, дополнительная строка - опечатка. По какой-то причине он не форматировал его правильно, когда я задавал вопрос. Реальная проблема в том, что i + ")" не будет отображаться в текстовом поле. –

+0

В чем проблема? Что-то происходит, когда вы нажимаете клавишу ввода? – RussDunn

ответ

1

Похоже, что вы не можете поместить свой код в правильный метод. Один простой способ сделать это - перейти к дизайнеру формы, выбрать текстовое поле, перейти в окно «Свойства», щелкнуть значок молнии (для методов), а затем дважды щелкнуть по методу KeyDown. Это создаст обработчик событий и подключит его к текстовому полю.

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

Например:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     textBox1.Text += Environment.NewLine + i++ + ") "; 
     textBox1.SelectionStart = textBox1.Text.Length; 
     e.SuppressKeyPress = true; 
    } 
} 
+0

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

+0

Убедитесь, что вы подключили этот метод до события KeyDown текстового поля. –

+0

@FrancoPettigrosso. Я добавил абзац, описывающий, как связать событие с дизайнером. –

0

Я получил его! Спасибо вам, ребята! что я должен был сделать meowbox.KeyDown += new KeyEventHandler. Если вы пытались сказать это мне, спасибо!

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

  • Нет связанных вопросов^_^