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

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

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

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework, элСмСнт Label Π² .NET Compact Framework Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ свойства, ΠΊΠ°ΠΊ AutoSize, BorderStyle, Image, ImageList ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ поддСрТиваСтся событиС Click. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π΅Π΄ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½ΡƒΠΆΠ΄Π° Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ этого события.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния RadioButton позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹. Вся Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ сама Ρ„ΠΎΡ€ΠΌΠ°, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ элСмСнт Panel.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ автоматичСски пСрСводятся Π² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ состояниС. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Π³Ρ€ΡƒΠΏΠΏ элСмСнтов RadioButton. Π’ любом случаС Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ зависят Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π² классС RadioButton ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ события Click ΠΈ CheckedChanged. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Click Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ стилусом Π½Π° самом ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ CheckedChanged Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° состояниС элСмСнта RadioButton мСняСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ»ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Click Π½Π΅ инициируСтся, ΠΊΠΎΠ³Π΄Π° свойство CheckedChanged мСняСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.

Для дСмонстрации ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтом RadioButton ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ популярной Ρ‚Π΅Π»Π΅ΠΈΠ³Ρ€Ρ‹ Β«ΠšΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π΅Ρ€ΠΎΠΌ?Β». На экранС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ вопрос, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· прСдставлСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² СдинствСнный ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚. Код, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.3.

Листинг 3.3

private void radClub1_CheckedChanged(object sender, EventArgs e) {

 if (this.radClub1.Checked)

  MessageBox.Show("Π£Π²Ρ‹, Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»ΠΈ", "Ошибка!");

}


private void radClub2_CheckedChanged(object sender, EventArgs e) {

 if (this.radClub2.Checked)

  MessageBox.Show("ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! Π’Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½!", "Миллион!");

}


private void radClub3_CheckedChanged(object sender. EventArgs e) {

 if (this.radClub3.Checked)

  MessageBox.Show("Π£Π²Ρ‹, Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»ΠΈ", "Ошибка!");

}


private void radClub4_CheckedChanged(object sender. EventArgs e) {

 if (this.radClub4.Checked)

  MessageBox.Show ("Π£Π²Ρ‹, Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»ΠΈ", "Ошибка!");

}

На рис. 3.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ этого прилоТСния.

Рис. 3.4. ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹ нСзависимых ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ

Π’ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework Π² качСствС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ элСмСнт GroupBox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ поддСрТиваСтся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ .NET Compact Framework. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относятся Appearance, Image ΠΈ ImageList.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния Panel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для размСщСния Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов управлСния. Π’Π°ΠΊ ΠΊΠ°ΠΊ .NET Compact Framework Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ элСмСнт управлСния GroupBox, Ρ‚ΠΎ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… элСмСнтов, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ RadioButton, приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Panel.

Π’ вСрсии .NET Compact Framework элСмСнт Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ свойства BorderStyle, BackGroundImage ΠΈ AutoScroll.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния CheckBox позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСзависимый ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ„Π»Π°ΠΆΠΊΠ°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ CheckBox ΠΈΠΌΠ΅Π΅Ρ‚ свойство CheckState, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ значСния Unchecked, Checked ΠΈ Indeterminate. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Unchecked ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π»Π°ΠΆΠΎΠΊ Π² ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ Π½Π΅ Π²Π·Π²Π΅Π΄Π΅Π½. Если ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ всС ΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Checked. Но Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Indeterminate Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… пояснСний. БостояниС Indeterminate ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° для свойства ThreeState элСмСнта CheckBox установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True. Если свойство CheckState ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Indeterminate, Ρ‚ΠΎ элСмСнт ΠΎΠΊΡ€Π°ΡˆΠ΅Π½ сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, считаСтся ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ.

Π’Π°ΠΊΠΆΠ΅ элСмСнт Π½Π΅ распознаСт событиС Click, Ссли свойство AutoCheck ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False. Для этого свойства Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стилусом для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π’Π°ΠΊΠΆΠ΅ элСмСнт Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства, Π² частности, ImageIndex.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния ComboBox позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ со списком Π²Ρ‹Π±ΠΎΡ€Π°. Благодаря своСй компактности этот элСмСнт управлСния Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π΅Ρ… Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ мСсто Π½Π° экранС. ПолС со списком выглядит ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ тСкстовоС ΠΏΠΎΠ»Π΅ TextBox со стрСлкой, которая располоТСна Π² ΠΏΡ€Π°Π²ΠΎΠΉ части поля. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ ΠΏΠΎ стрСлкС, Ρ‚ΠΎ открываСтся список с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ элСмСнтами. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ списка ΠΈΠ»ΠΈ снова Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ ΠΏΠΎ стрСлкС, Ρ‚ΠΎ список снова сворачиваСтся.

Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ тСкстовыС элСмСнты Π² ComboBox ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ проСктирования, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ листингС 3.4 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ добавлСния ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ. Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Add Π² свойствС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Items элСмСнта ComboBox. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Remove, Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ сразу, примСняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Clear. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ строки Π² элСмСнт ComboBox с ΠΈΠΌΠ΅Π½Π΅ΠΌ comboBox1.

Листинг 3.4

comboBox1.Items.Add("ΠœΡƒΡ€Π·ΠΈΠΊ");

comboBox1.Items.Add("Барсик");

comboBox1.Items.Add("Π Ρ‹ΠΆΠΈΠΊ");

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π²Ρ‹Π±Ρ€Π°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, примСняСтся свойство SelectedIndex ΠΈΠ»ΠΈ SelectedItem. Бвойство SelectedIndex Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°. Π­Ρ‚ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для доступа ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойства Items. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ нумСрация элСмСнтов начинаСтся с нуля. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со свойством SelectedIndex ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.5. Π’Π°ΠΊΠΆΠ΅ Π² этом листингС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойства SelectedItem.

Листинг 3.5

// ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SelectedIndex

string selItem = (string)cmbCats.Items[cmbCats.SelectedIndex];

MessageBox.Show(selItem);

// Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ

SelectedItem string selItem = cmbCats.SelectedItem.ToString();

MessageBox.Show(selItem);

Π’ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework Ρƒ элСмСнта ComboBox для свойства DropDownStyle ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ значСния Simple, DropDownList ΠΈΠ»ΠΈ DropDown. Π’ .NET Compact Framework Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Simple Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π”ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° .NET Compact Framework 2.0 Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΎΡΡŒ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ DropDown. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² .NET Compact Framework примСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ DropDownList, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΡ‚ΠΈΠ»ΡŒ DropDown. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· основной вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ .NET Compact Framework 2.0 Ρƒ поля со списком появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² BeginUpdate ΠΈ EndUpdate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ мСрцания ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ большого числа элСмСнтов.

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

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнта ComboBox Π² смартфонах Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов Π² КПК. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± отличиях Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ComboBox Ρ…ΠΎΡ€ΠΎΡˆ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ пространствами Ρ„ΠΎΡ€ΠΌΡ‹, Π° список ListBox ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π½Π° экранС достаточно мСста для отобраТСния всСх ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² списка. Бписок ListBox сразу ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты списка, ΠΏΡ€ΠΈ нСобходимости добавляя Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ полоску ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, Ссли всС элСмСнты списка Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ComboBox ΠΈ ListBox ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ листингС 3.6 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько строк Π² список ListBox.

Листинг 3.6

lstFruit.Items.Add("Π―Π±Π»ΠΎΠΊΠΎ");

lstFruit.Items.Add("Π“Ρ€ΡƒΡˆΠ°");

lstFruit.Items.Add("Π‘Π»ΠΈΠ²Π°");

lstFruit.Items.Add("ΠŸΠ΅Ρ€ΡΠΈΠΊ");

Бвойство SelectedIndex содСрТит порядковый Π½ΠΎΠΌΠ΅Ρ€ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта списка. Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ этот индСкс Π² ΠΊΠΎΠ΄Π΅ прилоТСния, Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ Π² спискС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Если Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½, Ρ‚ΠΎ свойство SelectedIndex ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1. Π’Π°ΠΊΠΆΠ΅ класс ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ свойство SelectedItem, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡƒ свойству класса ComboBox.

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