2016-07-29 2 views
1

Если пользователь нажимает клавишу ввода, я хочу показать сообщение о том, что нажата клавиша ввода. Кроме того, я хочу ввести текстовое поле как обычно.Если Enter key hit - show message. Else - введите как обычно

private void enterCheck(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter)  
     { 
       MessageBox.Show("Enter Was Clicked"); 
     } 
    } 

Если введено сообщение, сообщение отображается правильно. Однако, если я пытаюсь ввести предложение, в текстовом поле ничего не появляется.

Это будет работать ...

private void enterCheck(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter)  
     { 
       MessageBox.Show("Enter Was Clicked"); 
     } 
     else 
     { 
       MessageBox.Show(e.KeyCode.ToString()); 
     } 
    } 

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

+1

Просто избавитесь от всего блока 'else'. – itsme86

+0

@ itsme86 Я пробовал это сделать, и то же самое происходит – Michael

+0

В какое событие входит 'enterCheck'? – FrankerZ

ответ

2

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

private void enterCheck(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     MessageBox.Show(e.KeyCode.ToString()); 
    } 
    else 
    { 
     e.Handled = true; 
    } 
} 

Пожалуйста работать! Это самое смутное, что я когда-либо встречал!

0

Используйте KeyPress событие:

// This event occurs after the KeyDown event and can be used to prevent 
// characters from entering the control. 
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) 
{ 
    // Check for the flag being set in the KeyDown event. 
    if (e.KeyChar == (char)Keys.Return) 
    { 
     // Stop the character from being entered into the control since it is non-numerical. 
     MessageBox.Show("Enter Was Pressed"); 
     e.Handled = true; 
    } 
} 
+0

Я получаю сообщение об ошибке: KeyPressEventArgs не содержит определения для KeyCode – Michael

+0

Я обновил свой ответ – FrankerZ

+0

@Michael Мой обновленный ответ не работает? – FrankerZ