Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 458
Эндрю Троелсен
}
}
Если теперь запустить программу и поместить указатель мыши на форму, вы увидите текущие значения координат (х, у) указателя, отображенные в области заголовка соответствующего окна (рис. 19.4).
Рис. 19.4. Мониторинг движения мыши
Регистрация щелчков кнопок мыши
Следует подчеркнуть, что событие MouseUp (как и MouseDown) посылается при щелчке
public MainWindow() {
…
// Для обработки события MouseUp.
MouseUp += new MouseHandler(MainForm_MouseUp);
}
Следующий обработчик события MouseUp сообщает в окне сообщения о том, какой кнопкой мыши был выполнен щелчок.
public void MainForm_MouseUp(object sender, MouseEventArgs e) {
// Какая кнопка мыши была нажата?
if (e.Button == MouseButtons.Left) MessageBox.Show("Щелчок левой кнопки");
if (e.Button == MouseButtons.Right) MessageBox.Show("Щелчок правой кнопки");
if (e.Button == MouseButtons.Middle) MessageBox.Show("Щелчок средней кнопки");
}
Ответ на события клавиатуры
Обработка ввода с клавиатуры почти идентична обработке событий мыши. cобытия KeyUp и KeyDown работают в паре с делегатом KeyEventHandler, который может указывать на любой метод, получающий объект общего вида в качестве первого параметра, и KeyEventArgs – в качестве второго.
void MyKeyboardHandler(object sender, KeyEventArgs e);
Описания членов KeyEventArgs предлагаются в табл. 19.7.
Таблица 19.7. Свойства типа KeyEventArgs
Свойство | Описание |
---|---|
Alt | Содержит значение, являющееся индикатором нажатия клавиши ‹Alt› |
Control | Содержит значение, являющееся индикатором нажатия клавиши ‹Ctrl› |
Handled | Читает или устанавливает значение, являющееся индикатором полного завершения обработки события обработчиком |
KeyCode | Возвращает клавишный код для события KeyDown или события KeyUp |
Modifiers | Указывает, какие модифицирующие клавиши были нажаты (‹Ctrl›, ‹Shift› и/или ‹Alt›) |
Shift | Содержит значение, являющееся индикатором нажатия клавиши ‹Shift› |
Измените объект MainForm, чтобы реализовать обработку события KeyUp. В окне сообщения отобразите название нажатой клавиши, используя свойство KeyCode.
public class MainForm: Form {
public MainForm() {
…
// Для отслеживания событий KeyUp.
KeyUp += new KeyEventHandler(MainForm_KeyUp);
}
private void MainForm_KeyUp (object sender, KeyEventArgs e) {
MessageBox.Show(e.KeyCode.ToString(), "Нажата клавиша!");
}
}
Скомпилируйте и запустите программу. Теперь вы должны иметь возможность не только определить, какой кнопкой мыши был выполнен щелчок, но и то, какая была нажата клавиша на клавиатуре.