Ответ 1
Дайте этот снимок...
private void input_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyData == Keys.Enter)
{
MessageBox.Show("Pressed enter.");
}
}
В принципе, я хочу, чтобы иметь возможность запускать событие при нажатии клавиши ENTER. Я уже пробовал это:
private void input_KeyDown(object sender, KeyEventArgs e)
{
if (e.Equals("{ENTER}"))
{
MessageBox.Show("Pressed enter.");
}
}
Но MessageBox никогда не появляется. Как я могу это сделать?
Дайте этот снимок...
private void input_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyData == Keys.Enter)
{
MessageBox.Show("Pressed enter.");
}
}
Чтобы добавить в ответ @Willy David Jr: вы также можете использовать реальные коды клавиш.
private void input_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyChar == 13)
{
MessageBox.Show("Pressed enter.");
}
}
Вы можете просто сказать
private void input_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
MessageBox.Show("Pressed enter.");
}
}
Вы можете использовать событие Keypress. Если вы просто ищете нажатие клавиши "Enter", то вам, вероятно, наплевать на клавиши-модификаторы (такие как Shift и/или Ctrl), поэтому большинство из них будет использовать KeyDown вместо Keypress. Вторым преимуществом является ответ на вопрос, который почти всегда задается после реализации любого из других ответов: "Когда я использую ссылочный код, почему нажатие" Enter "вызывает звуковой сигнал?" Это потому, что событие Keypress должно быть обработано. Используя Keypress, вы решаете оба вопроса в одном месте:
private void input_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
// Your logic here....
e.Handled = true; //Handle the Keypress event (suppress the Beep)
}
}
Вы также можете сделать это:
private void input_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode== Keys.Enter)
{
//Your business logic here.
}
}
Единственное отличие от KeyCode
vs KeyData
заключается в том, что KeyCode
может обнаруживать комбинацию модификаторов с KeyCode
(например, CTRL, Shift + A), которые вам здесь не нужны.
Dears,
Извините, но ни один из этих методов не распознает нажатие клавиши "Enter". Я перепробовал их все, и они не работают. В чем может быть причина?