private void Form1_MouseUp(object sender, MouseEventArgs e) {
timer1.Enabled = false;
label1.Text = "";
}
private void timer1_Tick(object sender, EventArgs e) {
label1.Text = "Вы нажали на экран";
}
Клавиатура
На большинстве карманных компьютеров нет стандартной клавиатуры, поэтому ввод текста осуществляется с помощью виртуальной клавиатуры SIP. В Visual Studio 2005 клавиатура SIP представлена элементом InputPanel
Рис. 5.2
. Эмулятор устройства с клавиатуройКроме того, на устройствах имеются клавиши навигации, клавиша Enter
Клавиши навигации
Если вы в процессе создания приложения в режиме работы с формой щелкнуть мышью на любой из кнопок навигации, то среда разработки сгенерирует код для этих кнопок в событии Form_KeyDown
private void Form1_KeyDown(object sender, KeyEventArgs e) {
if ((e.KeyCode == System.Windows.Forms.Keys.Up)) {
label1.Text = "Клавиша Вверх";
}
if ((e.KeyCode = System.Windows.Forms.Keys.Down)) {
label1.Text = "Клавиша Вниз";
}
if ((e.KeyCode == System.Windows.Forms.Keys.Left)) {
label1.Text = "Клавиша Влево";
}
if ((e.KeyCode == System.Windows.Forms.Keys.Right)) {
label1.Text = "Клавиша Вправо";
}
if ((e.KeyCode == System.Windows.Forms.Keys.Enter)) {
label1.Text = "Клавиша Enter";
}
}
Как видите, приложение определяет нажатую клавишу при помощи перечисления System.Windows.Forms.Keys
Form_KeyDown
(рис. 5.3). Если протестировать пример на устройстве с настоящей клавиатурой, то можно заметить, что приложение правильно обрабатывает нажатие на встроенные клавиши со стрелками.Рис. 5.3
. Обработка нажатий клавиш навигацииВыключение устройства
На карманных компьютерах также есть кнопка выключения устройства. На самом деле при нажатии на эту кнопку устройство не выключается, а переходит в особый спящий режим. В мобильных устройствах программы и данные хранятся в памяти, и если устройство действительно выключить, то все приложения и данные просто пропадут. Разработчик может программно перевести устройство в спящий режим, имитируя нажатие этой кнопки выключения с помощью функции API keybd_event
///
/// Функция имитирует нажатия клавиш на клавиатуре
///
/// Виртуальный код клавиши для имитации
/// нажатия и отпускания клавиши
/// Зарезервировано - установлено в
// 0
/// Флаг
/// Дополнительная информация
[DllImport("coredll.dll", CharSet = CharSet.Unicode)]
public static extern void
keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
// константа для кнопки выключения устройства
public const int VK_OEM_8 = 0xDF;
private void butOff_Click(object sender, EventArgs e) {
// Имитируем нажатие кнопку выключения устройства
keybd_event(VK_OEM_8, 0, 0, 0);
}
Дополнительные материалы