Вход/Регистрация
Программирование КПК и смартфонов на .NET Compact Framework
вернуться

Климов Александр Петрович

Шрифт:

 T9 = 1,

 Numbers = 2,

 Text = 3

}

public static void SetInputMode(Control ctrl, InputModeAPI mode) {

 SendMessage(ctrl.Handle, EM_SETINPUTMODE, 0, (uint)mode);

}

private void mnuT9_Click(object sender, EventArgs e) {

 SetInputMode(textBox3, InputModeAPI.T9);

}

private void mnuSpell_Click(object sender, EventArgs e) {

 SetInputMode(textBox3, InputModeAPI.Spell);

}

private void mnuNumeric_Click(object sender, EventArgs e) {

 SetInputMode(textBox3, InputModeAPI.Numbers);

}

private void mnuText_Click(object sender, EventArgs e) {

 SetInputMode(textBox3, InputModeAPI.Text);

}

В данном примере нужный режим ввода указывается для текстового поля

textBox3
с помощью системы меню (рис. 9.6).

Рис. 9.6. Выбираем режим ввода

ПРИМЕЧАНИЕ

Режим T9 в эмуляторе не работает, поэтому надо проверять код на реальном устройстве.

В библиотеке .NET Compact Framework 2.0 появилась возможность контролировать режим ввода текста с помощью класса

InputModeEditor
. Данный режим распространяется только на текстовые поля.

Предположим, что в программе есть два текстовых поля. В одном поле пользователь должен ввести свое имя, а во втором — номер телефона. В первом случае пользователь будет использовать буквы, а во втором случае ему необходимы только цифры. Поэтому можно заранее задать нужный режим ввода текста для разных текстовых полей. Для этого надо указать ссылку на сборку

Microsoft.WindowsCE.Forms
и задействовать класс
InputModeEditor
, как показано в листинге 9.3.

Листинг 9.3 Управление режимами ввода с помощью управляемого кода

private void Form1_Load(object sender, EventArgs e) {

 // Устанавливаем текстовый режим ввода текста

 InputModeEditor.SetInputMode(txtName, InputMode.AlphaCurrent);

 // Устанавливаем числовой режим ввода текста

 InputModeEditor.SetInputMode(txtPhone, InputMode.Numeric);

}

Переопределение клавиш Soft Key

На смартфонах клавиши

Soft Key 1
и
Soft Key 2
используются для управления меню. Если попробовать переопределить эти клавиши для других задач, то у вас ничего не получится. Дело в том, что события
Key_Down
не распознаются системой для этих клавиш, если на форме присутствует компонент
MainMenu
. Но если удалить этот компонент, устанавливаемый по умолчанию, то с этими кнопками можно будет связать собственные команды, как показано в листинге 9.4.

Листинг 9.4

private void Form1_KeyDown(object sender, KeyEventArgs e) {

if ((e.KeyCode == System.Windows.Forms.Keys.F1)) {

 // Soft Key 1

 lblTest.Text = "Вы нажали на клавишу Soft Key 1";

}

if ((e.KeyCode == System.Windows.Forms.Keys.F2)) {

 // Soft Key 2

 lblTest.Text = "Вы нажали на клавишу Soft Key 2";

}

Прокручивание формы

Если форма не умещается на экране целиком, то пользователь может прокрутить ее стилусом с помощью полос прокрутки. Особенно это полезно, если учесть, что .NET Compact Framework 2.0 теперь поддерживает свойство

AutoScroll
. Но смартфоны не имеют сенсорного экрана, реагирующего на стилус. Для прокрутки формы надо искать другой вариант.

Например, можно воспользоваться обработкой события

KeyDown
. В тестовом проекте надо растянуть форму так, чтобы нижнюю часть не было видно на экране смартфона. На форме надо разместить несколько надписей, причем одна из них должна располагаться в нижней части формы. Для свойства формы
AutoScroll
надо задать значение
True
. В листинге 9.5 приведен пример кода для прокрутки формы.

Листинг 9.5

private void Form1_KeyDown(object sender, KeyEventArgs e) {

 if ((e.KeyCode == System.Windows.Forms.Keys.Up)) {

// Up

this.AutoScrollPosition =

new Point(-this.AutoScrollPosition.X, -this.AutoScrollPosition.Y - 16);

 }

 if ((e.KeyCode == System.Windows.Forms.Keys.Down)) {

// Down

this.AutoScrollPosition =

  • Читать дальше
  • 1
  • ...
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: