Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ КПК ΠΈ смартфонов Π½Π° .NET Compact FrameworkΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 27

Автор АлСксандр Климов

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния для смартфона

Π’ Π³Π»Π°Π²Π΅ 7 ΡƒΠΆΠ΅ создавался ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, рассчитанный Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с смартфоном. ΠœΡ‹ Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π±Π΅ΠΆΠ°Π»ΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄. Настало врСмя Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ истокам ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ с самого Π½Π°Ρ‡Π°Π»Π°.

ЗапуститС Visual Studio 2005 для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Надо Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Smartphone 2003. Для этого Ρ‚ΠΈΠΏΠ° примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ .NET Compact Framework 1.0. Π‘Ρ€Π°Π·Ρƒ послС создания Π½Π°Π΄ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эмулятор ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСню Debugβ–ΊStart Debugging. На экранС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ ΠΎΠΊΠ½ΠΎ Deploy со списком ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ эмуляторов. НуТно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ эмулятор ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Deploy. Если всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ эмулятор Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ с пустой Ρ„ΠΎΡ€ΠΌΠΎΠΉ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ Π½Π°Π΄ΠΎ лишь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с эмулятором. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°Π΄ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½ΠΎ Π½Π΅ эмулятор!) ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ проСктирования.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для смартфонов Π½Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ закрытия ΠΎΠΊΠ½Π°, Ρ‚ΠΎ нСпонятно, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. МоТно Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Stop Debugging. Если Π½Π° эмуляторС Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ с красным Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ свСрнуто, Π° Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ, ΠΈ всС Ρ€Π°Π²Π½ΠΎ придСтся Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ способом для закрытия прилоТСния.

БозданиС мСню

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для смартфонов Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ мСню. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим элСмСнтом управлСния. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ слСдуСт Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΌΡ‹ΡˆΡŒΡŽ Π² Π»Π΅Π²ΠΎΠΉ части Π³ΠΎΠ»ΡƒΠ±ΠΎΠΉ полоски, которая располоТСна Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана. Π­Ρ‚Π° полоска являСтся элСмСнтом мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вызываСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Soft Key1, находящСйся ΠΏΠΎΠ΄ экраном. На Ρ„ΠΎΡ€ΠΌΠ΅ появится тСкст Type Here (рис. 9.1).

Рис. 9.1. БозданиС мСню

Π’ этой области Π½ΡƒΠΆΠ½ΠΎ ввСсти слово ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Enter. Π’Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ тСкст появится Π² Π»Π΅Π²ΠΎΠΉ части Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Soft Key 2 с Ρ‚ΠΎΠΉ ΠΆΠ΅ надписью Type Here. Π’ этой области Π½ΡƒΠΆΠ½ΠΎ ввСсти слово Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст для подмСню. Новый ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π’Ρ‹Ρ…ΠΎΠ΄. ΠŸΠ΅Ρ€Π΅Π΄ словом Π’Ρ‹Ρ…ΠΎΠ΄ появится Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio 2005 автоматичСски вставляСт Ρ†ΠΈΡ„Ρ€Ρ‹ Π² создаваСмоС мСню. Π­Ρ‚ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ-клавиш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой подсказки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ быстро Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ (рис. 9.2).

Рис. 9.2. БозданиС подмСню

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΏΡƒΠ½ΠΊΡ‚Π΅ созданного мСню Π’Ρ‹Ρ…ΠΎΠ΄. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° с Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ menuItem3_Click. Π•Π΅ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 9.1

Листинг 9.1

private void menuItem3_Click(object sender, EventArgs e) {

 this.Close();

}

ПослС запуска прилоТСния слСдуСт Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΡƒΡŽ ΡΠ΅Ρ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ΄ экраном. ΠŸΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° правая Ρ‡Π°ΡΡ‚ΡŒ мСню ΠΈ появится ΠΏΡƒΠ½ΠΊΡ‚ 1 Π’Ρ‹Ρ…ΠΎΠ΄. Для выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 1 ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, которая выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ клавиши подтвСрТдСния. Если всС Π±Ρ‹Π»ΠΎ сдСлано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ закроСтся. Π˜Ρ‚Π°ΠΊ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для смартфона, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π½Π΅Π³ΠΎ мСню, запустили ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π»ΠΈ Π΅Π³ΠΎ.

Π’ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ мСню прилоТСния для смартфонов установлСно ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ. Клавиша Left Softkey ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ мСню, Π° клавиша Right Softkey ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½Π½ΠΎΠ΅ мСню. Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания подмСню для Π»Π΅Π²ΠΎΠΉ клавиши прСдыдущая вСрсия срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio 2003 Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ошибки Π½Π΅ выводится, ΠΈ, тСорСтичСски, Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ²ΡˆΡƒΡŽΡΡ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΡŽ. НапримСр, ΠΏΡ€ΠΈ использовании ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для смартфонов ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Mobile 5.0 программист ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ мСню для Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ лишСн возмоТности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стилусом, Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ элСмСнты управлСния смартфонами Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Π’ этом Π»Π΅Π³ΠΊΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, достаточно лишь Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° панСль инструмСнтов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для смарфтонов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΠΊΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎΡΡŒ число ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ количСство Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… элСмСнтов управлСния ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. Как ΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния, Ссли смартфон Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ распространСнный элСмСнт, ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ°? Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² смартфонах Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стилус, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ просто бСссмыслСнно. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² прилоТСниях для смартфонов осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ-клавиш.

ΠšΡ€ΠΎΠΌΠ΅ стандартных ΠΊΠ½ΠΎΠΏΠΎΠΊ с Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ Ρƒ смартфона ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΅Ρ‰Π΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ softkey-клавиши. Π­Ρ‚ΠΎ Π΄Π²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ΄ экраном, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² прилоТСниях. ИмСнно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих ΠΊΠ½ΠΎΠΏΠΎΠΊ осущСствляСтся Ρ€Π°Π±ΠΎΡ‚Π° с мСню.

Π’Π°ΠΊΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ внСшний Π²ΠΈΠ΄ элСмСнтов управлСния Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ отличаСтся ΠΎΡ‚ Π²ΠΈΠ΄Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов Π½Π° КПК. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, тСкстовоС ΠΏΠΎΠ»Π΅. ВСкстовоС ΠΏΠΎΠ»Π΅ TextBox Π² смартфонах Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΊΠ°Π½Ρ‚ΠΎΠ²ΠΊΠΈ. Она появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° тСкстовоС ΠΏΠΎΠ»Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фокус. Π’ этом Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π΄Π²Π° тСкстовых поля. Одно ΠΈΠ· Π½ΠΈΡ… автоматичСски ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ фокус ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ прилоТСния (рис. 9.3). Если с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиши Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠΊΠ°Π½Ρ‚ΠΎΠ²ΠΊΡƒ, Π° Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поля, соотвСтствСнно, ΠΎΠΊΠ°Π½Ρ‚ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠΏΠ°Π΄Π΅Ρ‚.


Рис. 9.3. ΠžΠΊΠ°Π½Ρ‚ΠΎΠ²ΠΊΠ° Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ тСкстового поля, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ фокус

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ тСкстовыС поля с элСмСнтами Label, Π² надписях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΆΠΈΡ€Π½Ρ‹ΠΉ тСкст. На Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° элСмСнта Label. На рис. 9.4 Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ строки label1 ΠΈ label2 Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΆΠΈΡ€Π½Ρ‹ΠΌ Π½Π°Ρ‡Π΅Ρ€Ρ‚Π°Π½ΠΈΠ΅ΠΌ тСкста. На этом различия Π½Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Рис. 9.4. Различия внСшнСго Π²ΠΈΠ΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов управлСния

Π‘Ρ‚ΠΎΠΈΡ‚ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ тСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ для Π΅Π³ΠΎ свойства Multiline ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True. Π’ ΠΏΠΎΠ»Π΅ Π½Π°Π΄ΠΎ ввСсти ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ тСкст. ПослС запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ тСкстовоС ΠΏΠΎΠ»Π΅ Π½Π΅ Π² состоянии ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ вСсь тСкст, Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΏΠ΅Ρ€Π²Ρ‹Ρ… слов с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ малСньким Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ.

Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° Π½Π° этом тСкстовом ΠΏΠΎΠ»Π΅ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Enter, Ρ‚ΠΎ тСкст ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ (рис. 9.5).

Рис. 9.5. ΠŸΠΎΠ»Π½Ρ‹ΠΉ тСкст Π² тСкстовом ΠΏΠΎΠ»Π΅

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ слова пСсни Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Done ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ подтвСрТдСния Π²Π²ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Cancel.

Π’ΠΎ ΠΆΠ΅ самоС касаСтся ΠΈ элСмСнта ComboBox. Π”Π°Π½Π½Ρ‹ΠΉ элСмСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠΊΠ°Π½Ρ‚ΠΎΠ²ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ фокуса ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡƒΠΆΠ΅ Π΄Π²Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ список элСмСнтов, хранящихся Π² ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ фокус ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Enter. ΠŸΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ элСмСнт ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ мСню Done.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнта ΠΈΠ· ComboBox. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ фокус Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ записи ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π’Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π’ΠΏΡ€Π°Π²ΠΎ.

Π Π΅ΠΆΠΈΠΌΡ‹ Π²Π²ΠΎΠ΄Π°

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ сотовых Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний ΠΈΠΌΠ΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Π²ΠΎΠ΄Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС, вводя Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ символ. Π—Π°Ρ‚Π΅ΠΌ появились Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹. Π’ частности, сСйчас поддСрТиваСтся числовой Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ T9 ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° .NET Compact Framework Π½Π΅ ΠΈΠΌΠ΅Π»Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π²Π²ΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° программистам ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ P/Invoke для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ API, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 9.2.

Листинг 9.2

[DllImport("coredll.dll", EntryPoint = "SendMessage")]

private static extern uint SendMessage(IntPtr hWnd, uint msg,

 uint wParam, uint lParam);


// Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ для Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Π²ΠΎΠ΄Π°

const uint EM_SETINPUTMODE = 0x00DE;


// ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π²Π²ΠΎΠ΄Π°

public enum InputModeAPI {

 Spell = 0,

 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);