Шаг 171 - Распознавание нажатых клавиш

Итак, событие нажатия умеем ловить, пора научиться определять, что за клавиша нажата. Нам передается класс 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.

gif/171_1.gif (2520 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 31.10.2001