Итак, событие нажатия умеем ловить, пора научиться определять, что за клавиша нажата. Нам передается класс KeyPressEventArgs в этом классе есть свойство KeyChar:
public char KeyChar {get;}
В нем находится информация о том, какая клавиша нажата. Давайте пробовать:
// CSharp Sample Code using System; using System.Windows.Forms; class MainForm : Form { public MainForm() { Text = "This is my form"; } protected override void OnKeyPress(KeyPressEventArgs e) { switch(e.KeyChar) { case '\r': MessageBox.Show("Enter"); break ; case (char)27: MessageBox.Show("Esc"); break ; default: MessageBox.Show(e.KeyChar.ToString()); break; } } public static void Main(string[] args) { Application.Run(new MainForm()); } }
Клавиша имеет код, вот этот код мы и обрабатываем. Если нажата специальная клавиша типа Esc или Enter то ее нельзя представить в виде символа и эту ситуацию нужно отлавливать, а вот если нажата обычная алфавитная или цифровая клавиша то можно получить ее строковое преставление используя например ToString.