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

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

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

Бвойства SmallChange ΠΈ LargeChange ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ шаг измСнСния значСния Value. Бвойство SmallChange Π·Π°Π΄Π°Π΅Ρ‚ измСнСния основного значСния, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π½Π° самом ΠΊΠ°Ρ€ΠΌΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π½Π° смартфонС.

Бвойство LargeChange ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π½Π° сколько Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ основноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚ стилусом Π½Π° самом ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ΅. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния свойства Value инициируСтся событиС ValueChanged.

Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π΄Π²Π° элСмСнта TrackBar. Один ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ располоТСн Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ² Π½Π° ΡˆΠΊΠ°Π»Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ синхронизировано (рис. 3.8).

Рис. 3.8. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°ΠΌΠΈ

Π’ листингС 3.11 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ².

Листинг 3.11

private void trackVert_ValueChanged(object sender, EventArgs e) {

 this.trackHoriz.Value = this.trackVert.Value;

}


private void trackHoriz_ValueChanged(object sender, EventArgs e) {

 this.trackVert.Value = this.trackHoriz.Value;

}

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ автоматичСски Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π² Ρ‚ΠΎ ΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния ToolBar позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ панСль инструмСнтов. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях использованиС ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ принСсти Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ большС Π²Ρ‹Π³ΠΎΠ΄, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ мСню. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ панСль инструмСнтов позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с этим элСмСнтом ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ наглядным. Π’ .NET Compact Framework элСмСнт ToolBar Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСкст. ВсС инструмСнты ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ графичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с элСмСнтом ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ класса ImageList. Π’ прилоТСниях для КПК панСль инструмСнтов всСгда располагаСтся Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана справа ΠΎΡ‚ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню (рис. 3.9).

Рис. 3.9. ПанСль инструмСнтов Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ элСмСнт ToolBar, Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ элСмСнт управлСния ImageList. Π—Π½Π°Ρ‡ΠΎΠΊ ImageList появится Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° Form Designer рядом с элСмСнтом mainMenu. Π’ ΠΎΠΊΠ½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° свойств Properties Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ свойство Images ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ рСдактирования. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Image Collection Editor.

Π’ этом ΠΎΠΊΠ½Π΅ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ изобраТСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 16Γ—16 пиксСлов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΈΡ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ искаТСний. Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ изобраТСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² состав прилоТСния, ΠΈ ΠΈΡ… Π½Π΅ придСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ вмСстС с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π½Π°Π΄ΠΎ пСрСнСсти элСмСнт ToolBar. Π’ Π΅Π³ΠΎ свойствС ImageList Π½Π°Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅ элСмСнта ImageList. Π’ рассматриваСмом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использовалось имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ImageList1. Π—Π°Ρ‚Π΅ΠΌ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ свойству Buttons ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ToolBarButton Collection Editor. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‚Ρ€ΠΈ изобраТСния для ΠΊΠ½ΠΎΠΏΠΎΠΊ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Add. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ свойство ImageIndex. ΠŸΡ€ΠΈ нСобходимости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ отобраТСния ΠΊΠ½ΠΎΠΏΠΎΠΊ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΡ‚ΠΈΠ»ΡŒ PushButton, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Если для ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ DropDownButton, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΅Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ мСню ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов отобраТаСтся стрСлка.

Π‘Ρ‚ΠΈΠ»ΡŒ Separator позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. Π‘Ρ‚ΠΈΠ»ΡŒ ToggleButton позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ состояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ остаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π΅ Π½Π°ΠΆΠΌΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

Π˜Ρ‚Π°ΠΊ, панСль инструмСнтов ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Π°, хотя Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ написано Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ строчки ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… элСмСнта ToolBar Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ событиС ButtonClick. Π’ листингС 3.12 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ.

Листинг 3.12

private void toolBar1_ButtonClick(object sender,

 ToolBarButtonClickEventArgs e) {

 if (e.Button == this.toolBarButton1) {

  MessageBox.Show("Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ");

 } else if (e.Button == this.toolBarButton2) {

  MessageBox.Show("Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ");

 }

}

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

МСню являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… элСмСнтов графичСского интСрфСйса Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΠΆΠ΅ присутствуСт элСмСнт MainMenu. Но ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Π½Π΅ΠΉ мСню Π½Π΅ появляСтся, ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² прилоТСниях для Pocket PC мСню располагаСтся Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² прилоТСниях для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² мСню располагаСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π°. Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ мСню ΠΈ панСль инструмСнтов, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ вмСстС. Но мСню Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΆΠ°Ρ‚ΠΎ ΠΊ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΎΠΊΠ½Π°, Π° панСль инструмСнтов β€” ΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСню ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.13.

Листинг 3.13

private void mnuAboutClick(object sender, EventArgs e) {

 MessageBox.Show("Π­Ρ‚ΠΎ моя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°!");

}


private void mnuExitClick(object sender, EventArgs e) {

 this.Close();

}

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ContextMenu позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ контСкстныС мСню для Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов интСрфСйса. Π­Ρ‚ΠΎΡ‚ элСмСнт ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° элСмСнт управлСния MainMenu. Но Ссли MainMenu всСгда связан с Ρ„ΠΎΡ€ΠΌΠΎΠΉ прилоТСния, Ρ‚ΠΎ ContextMenu ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ элСмСнтом Ρ„ΠΎΡ€ΠΌΡ‹. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² КПК Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΡ‹ΡˆΡŒ, Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² контСкстного мСню вызываСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ tap-and-hold вмСсто ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΏΡ€Π°Π²ΠΎΠΉ клавишСй ΠΌΡ‹ΡˆΠΈ.

Π’ΠΠ˜ΠœΠΠΠ˜Π•

Если Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ эмулятором, Ρ‚ΠΎ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ tap-and-hold Π½ΡƒΠΆΠ½ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ ΠΈ Π½Π΅ ΠΎΡ‚ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт ContextMenu Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡ΠΎΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ. Он появится Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Form Designer, Ρ‚Π°ΠΌ ΠΆΠ΅, Π³Π΄Π΅ ΠΈ элСмСнт MainMenu. Но Π½Π° самом Π΄Π΅Π»Π΅ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ контСкстноС мСню Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ рядом с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ элСмСнтом интСрфСйса. Π’Π°ΠΊΠΆΠ΅ контСкстноС мСню ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π²ΠΎ врСмя запуска прилоТСния.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ контСкстного мСню инициируСтся событиС Popup. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡƒΠ½ΠΊΡ‚ мСню, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ событиС Click. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ созданноС контСкстноС мСню ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту интСрфСйса, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π² свойствС ContextMenu ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ созданноС контСкстноС мСню.

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

Π”ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° .NET Compact Framework 2.0 элСмСнт управлСния ContextMenu Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» свойство ContextMenu.SourceControl

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Timer позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия ΠΏΠΎ истСчСнии Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π§Π°Ρ‰Π΅ всСго для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ примСняСт событиС Tick. Π”Π°Π½Π½ΠΎΠ΅ событиС инициируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли свойство Enabled ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True. Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, Ρ‚ΠΎ достаточно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΌΡƒ свойству Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False.

Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» отсчСта Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ задаСтся свойством Interval, Π° Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² миллисСкундах. Если Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 3 с, Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3000.

Π­Ρ‚ΠΎΡ‚ элСмСнт управлСния ΡƒΠΆΠ΅ примСнялся ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ProgressBar.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ OpenFileDialog ΠΈ SaveFileDialog

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ рСгулярно приходится Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ самому ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ интСрфСйс для ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Но ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ стандартными Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ открытия ΠΈ сохранСния Ρ„Π°ΠΉΠ»Π°. ИмСнно для этого ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ элСмСнты управлСния OpenFileDialog ΠΈ SaveFileDialog. К соТалСнию, Π² вСрсии .NET Compact Framework возмоТности Π΄Π°Π½Π½Ρ‹Ρ… элСмСнтов управлСния ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΡƒΡ€Π΅Π·Π°Π½Ρ‹. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΠ°ΠΏΠΊΠΈ My Documents ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ уровня. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ°ΠΏΠΊΠ° My Documents\Programming\Sample Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ нСдоступна.

РассматриваСмыС элСмСнты управлСния Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΡ‹ рядом с элСмСнтом MainMenu. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ элСмСнтами ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π°Π΄ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ свойствС Filter, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ список доступных Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡ ΠΈΡ… ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ. Бвойство InitalDirectory содСрТит имя ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹. Если это свойство ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым, Ρ‚ΠΎ ΠΎΠ±Π·ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² начнСтся с самой ΠΏΠ°ΠΏΠΊΠΈ My Documents.