Практическое руководство. Переопределение клавиши возврата смартфона
Обновлен: Ноябрь 2007
Примечание. |
---|
Обратите внимание на то, что функция клавиши возврата чрезвычайно важна для переключениями между приложениями смартфона. В большинстве случаев не рекомендуется изменять режим работы клавиши возврата по умолчанию для сохранения функциональности интерфейса пользователя смартфона. Поэтому при принятии решения о переопределении данной функции следует соблюдать особую осторожность. |
Функцию клавиши возврата можно настроить в приложениях смартфона, например играх. В следующей таблице описаны функции клавиши возврата в зависимости от контекста, в котором она была нажата.
Функции клавиши возврата |
Контекст |
---|---|
Отмена модальных диалоговых окон. |
Всегда. |
Отмена контекстных меню. |
Всегда. |
Удаление предыдущего символа. |
Когда фокус находится на изменяемом элементе управления, например текстовом поле, или настраиваемом пользовательском элементе управления. |
Переход к следующему окну в z-порядке. Обратите внимание на то, что когда фокус находится на форме или пользовательском элементе управления, клавиша возврата вызывает событие KeyPress, которое можно обработать для получения необходимых функций, как показано в приведенном примере. Если событие не обрабатывается, фокус переходит на следующее окно в z-порядке. |
Когда фокус находится на форме, неизменяемом элементе управления (например переключателе) или ненастраиваемом пользовательском элементе управления. |
Клавиша возврата работает одинаково независимо от наличия строки меню. Строка меню существует в том случае, если форма содержит компонент MainMenu.
Пример
В следующем примере кода показано, как реализовать пользовательскую функцию клавиши возврата. Когда клавиша возврата нажимается в форме или пользовательском элементе управления, вызывается событие KeyPress, значение KeyChar которого равно клавише ESC (27). В коде обработки события определите, относится ли вызванное значение к клавише ESC. Если это так, отмените функции по умолчанию клавиши возврата, присвоив свойству Handled значение true. Если аргументы события не обрабатываются, клавиша возврата вызывает переход на следующее окно в z-порядке.
В Visual C# необходимо определить обработчик событий KeyPress в конструкторе формы.
// Connect an event handler to the KeyPress event
this.KeyPress += new KeyPressEventHandler(OnKeyPress);
Private Sub keypressed(ByVal o As [Object], _
ByVal e As KeyPressEventArgs) Handles MyBase.KeyPress
' Determine if ESC key value is raised.
If e.KeyChar = ChrW(Keys.Escape) Then
' Handle the event to provide your own functionality.
e.Handled = True
' Add your event handling code here.
MessageBox.Show("Custom back key functionality.")
End If
End Sub
private void OnKeyPress(object sender, KeyPressEventArgs ke)
{
// Determine if ESC key value is pressed.
if (ke.KeyChar == (Char)Keys.Escape)
{
// Handle the event to provide functionality.
ke.Handled = true;
// Add your event handling code here.
MessageBox.Show("Back key was pressed.");
}
}
Компиляция кода
Для этого примера требуются ссылки на следующие пространства имен:
См. также
Задачи
Практическое руководство. Перегрузка программируемых клавиш смартфона
Другие ресурсы
Разработка приложений для смартфонов и платформа .NET Compact Framework