Читаем Программирование КПК и смартфонов на .NET Compact Framework полностью

На смартфонах клавиши 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";

}

<p>Прокручивание формы</p>

Если форма не умещается на экране целиком, то пользователь может прокрутить ее стилусом с помощью полос прокрутки. Особенно это полезно, если учесть, что .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 =

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

 }

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

  // Left

  this.AutoScrollPosition =

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

 }

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

  // Right

  this.AutoScrollPosition =

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

 }

}

После запуска приложения можно нажимать на клавиши навигации. Написанный код позволит прокручивать форму в выбранном направлении. Но здесь нас подстерегает одна опасность. Код будет работать лишь тогда, когда форма имеет фокус. Если форма содержит элементы управления, то фокус может находиться у данного элемента. И тогда нажатия на клавиши навигации не принесут желаемого результата. Это ограничение легко обходится добавлением соответствующего обработчика события, как показано в листинге 9.6.

Листинг 9.6

private void Form1_Load(object sender, EventArgs e) {

 pictureBox1.Focus();

 this.pictureBox1.KeyDown += new KeyEventHandler(Form1_KeyDown);

}

Теперь, даже если фокус находится не у формы, пользователь все равно сможет прокручивать форму при помощи клавиш навигации.

<p>Глава 10</p><p>Windows Mobile 5.0</p><p>Первый взгляд</p>

Устройства под управлением Windows Mobile, к которым относятся КПК и смартфоны, все глубже вторгаются в нашу жизнь. Эти устройства очень быстро эволюционируют, обзаводятся более совершенными экранами, увеличивают размер своей дисковой памяти, снабжаются фотокамерами и получают поддержку новых сетевых технологий. Операционная система Windows Mobile 5.0 сделала еще один шаг в развитии этих маленьких, но умных устройств.

В новой платформе появилась поддержка двухмерных и 3D-изображений, появилось больше возможностей обработки мультимедийных файлов, намного проще стало взаимодействовать с фотокамерами и устройствами позиционирования GPS. Причем эта поддержка осуществлена на программном уровне с помощью новых классов и расширения функциональности старых классов.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных