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

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

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

Π’Π°ΠΊΠΆΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнты ComboBox ΠΈ StatusBar. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ ComboBox Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ имя cboFileType. Π—Π°Ρ‚Π΅ΠΌ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ свойство Items ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° String Collection Editor. Для списка Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ значСния BMP ΠΈ WAV.

Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° элСмСнтС ComboBox, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события SelectedIndexChanged. Код ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.28.

Листинг 3.28

private void cboFileType_SelectedIndexChanged(object sender, EventArgs e) {

 if (cboFileType.Text = "BMP") {

  docListFile.Filter = "Рисунки (*.bmp)|*.bmp";

  docListFile.SelectedDirectory = "My Pictures";

 } else {

  docListFile.Filter = "Π—Π²ΡƒΠΊΠΈ (*.wav)|*.wav";

  docListFile.SelectedDirectory = "My Music";

 }

}

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ динамичСски мСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Filter элСмСнта DocumentList для отобраТСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’Π°ΠΊΠΆΠ΅ мСняСтся ΠΏΠ°ΠΏΠΊΠ° просмотра Ρ„Π°ΠΉΠ»ΠΎΠ². Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .BMP, Ρ‚ΠΎ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ My Pictures, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для хранСния ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² .WAV выбираСтся ΠΏΠ°ΠΏΠΊΠ° My Music.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ слСдуСт Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° элСмСнтС DocumentList, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события DocumentActivated. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.29.

Листинг 3.29

private void docListFile_DocumentActivated(object sender,

 Microsoft.WindowsCE.Forms.DocumentListEventArgs e) {

 statusBar1.Text = e.Path;

 // Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

}

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ тСстирования стоит ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠΈ My Pictures ΠΈ My Music. ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΏΠΎΠ»Π΅ со списком ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ². ПослС этого Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ элСмСнт DocumentList с Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΎΠΉ. Из списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ контСкстноС мСню ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠΌ (рис. 3.20). ΠŸΡƒΡ‚ΡŒ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ отобраТаСтся Π² строкС состояния.

Рис. 3.20. Π’Ρ‹Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта DocumentList

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Notification

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Π² послСднСй вСрсии .NET Compact Framework 2.0, носит имя Notification. Π”Π°Π½Π½Ρ‹ΠΉ элСмСнт управлСния позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ сообщСния. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ элСмСнту приводится довольно интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм HTML-тСкста. Но Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ наглядным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ.

Для создания тСстового ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ элСмСнты Notification ΠΈ Button. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. Π­Ρ‚ΠΎ рСализуСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² листингС 3.30.

Листинг 3.30

private void button1_Click(object sender, EventArgs e) {

 notification1.Text = "Позвони родитСлям!";

 notification1.Caption = "ДСмонстрация ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°";

 notification1.Critical = true;


 // Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ висит Π½Π° экранС 10 сСкунд

 notification1.InitialDuration = 10;

 notification1.Visible = true;

}

На рис. 3.21 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° экранС КПК Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10 сСкунд.

Рис. 3.21. Π’Ρ‹Π²ΠΎΠ΄ сообщСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта Notification

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Notification примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² прилоТСниях для ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π‘ΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Ρ‹ Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ HardwareButton

На ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΊΡ€ΠΎΠΌΠ΅ клавиш Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ΡΡ часто запускаСмыС прилоТСния. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² состав ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния КПК Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Но ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° для создаваСмой ΠΈΠ³Ρ€Ρ‹ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π’ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° врСмя ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. И ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта HardwareButton, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Π² .NET Compact Framework 2.0.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования этого Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Component tray Π΄Π²Π° элСмСнта HardwareButton с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ hrdLeftRotate ΠΈ hrdRightRotate. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ пСрСопрСдСляСмой ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой экзСмпляр элСмСнта HardwareButton. Π’ рассматриваСмом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ вторая ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π’Π°ΠΊΠΆΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ графичСскоС ΠΏΠΎΠ»Π΅ PictureBox. Π’ Π½Π΅Π³ΠΎ Π½Π°Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ любоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° заняла Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ экрана. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΡΡ‚Ρ‹ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„ΠΎΡ€ΠΌΡ‹. Для этого свойству Dock присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Top. Π’Π°ΠΊΠΆΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ надпись Label, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ подсказки. Надпись слСдуСт ΠΏΡ€ΠΈΡΡ‚Ρ‹ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ части Ρ„ΠΎΡ€ΠΌΡ‹. Для этого свойству Dock присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Bottom. Π£ ΠΎΠ±ΠΎΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов HardwareButton Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ свойство AssociatedControl ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Form1. Π’Π°ΠΊΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ значСния свойств HardwareKey. Для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта примСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ApplicationKey2, Ρ‡Ρ‚ΠΎ соотвСтствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅. Для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта задаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ApplicationKey3, Ρ‡Ρ‚ΠΎ соотвСтствуСт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΏΠΎΠ΄ экраном. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свойства установлСны, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для события Form1_KeyUp. Код ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.31.

Листинг 3.31

private void Form1_Load(object sender, EventArgs e) {

 label1.Text = "НаТмитС Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° экрана Π½Π° 90 градусов";

}


private void Form1_KeyUp(object sender, KeyEventArgs e) {

 switch ((HardwareKeys)e.KeyCode) {

 case HardwareKeys.ApplicationKey2:

  if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle0) {

   SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;

   label1.Text =

    "НаТмитС Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° экрана Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ";

  }

  break;

 case HardwareKeys.ApplicationKey:

  if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle90) {

   SystemSettings.ScreenOrientation = ScreenOrientation.Angle();

   label1.Text = "НаТмитС Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° экрана Π½Π° 90 градусов";

  }

  break;

 default:

  break;

 }

}

ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ΄ экраном ΠΊΠ°Ρ€ΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 3.22.

Рис. 3.22. ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚ экрана ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ

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

Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ говорится, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ КПК ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ΅ число ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ всС ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° систСмном ΡƒΡ€ΠΎΠ²Π½Π΅. НапримСр, Windows Mobile 2003 для Pocket PC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, a Windows Mobile 5.0 для Pocket PC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠŸΡ€ΠΈ этом класс HardwareButton Π½Π΅ поддСрТиваСтся смартфонами ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами Π½Π° Π±Π°Π·Π΅ Windows Π‘Π•, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ являСтся устройствами Pocket PC.

Π“Π»Π°Π²Π° 4

Π£Π»ΡƒΡ‡ΡˆΠ°Π΅ΠΌ элСмСнты управлСния

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ вСрсии Visual Studio .NET Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ· Microsoft Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты управлСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов. ОсобСнно это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ .NET Compact Framework. Π£ΠΆΠ΅ простоС сравнСниС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов управлСния Π² вСрсиях 1.0 ΠΈ 2.0 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов управлСния. Но, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Microsoft Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ элСмСнты Π½Π° всС случаи ΠΆΠΈΠ·Π½ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ программистам ΠΈΠ½ΠΎΠ³Π΄Π° приходится ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС элСмСнты. Π’Π°ΠΊΠΆΠ΅ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов программисты ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽΡ‚ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ‚Ρ€ΡŽΠΊΠ°ΠΌ ΠΈ хитростям. Π’ этой Π³Π»Π°Π²Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, пригодятся Π² вашСй ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

ВСкстовыС поля

ВСкстовыС поля довольно часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² прилоТСниях. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΎΠ½ΠΈ достойно ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с поставлСнными Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, имСя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ располоТСны нСсколько тСкстовых ΠΏΠΎΠ»Π΅ΠΉ для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ удобства использования примСняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€ΡŽΠΊ: послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² тСкстовом ΠΏΠΎΠ»Π΅ ΠΈ Π½Π°ΠΆΠ°Π» ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Enter, фокус ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ тСкстовому полю. Код, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 4.1.

Листинг 4.1

private void textBox1_KeyUp(object sender, KeyEventArgs e) {

 if (e.KeyCode == Keys.Enter) textBox2.Focus();

}


private void textBox2_KeyUp(object sender, KeyEventArgs e) {

 if (e.KeyCode = Keys.Enter) textBox3.Focus();

}


private void textBox3_KeyUp(object sender, KeyEventArgs e) {