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

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

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

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

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ NumericUpDown позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ счСтчик с числовым ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΎΠΉ элСмСнт интСрфСйса ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ быстро Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ число ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числа Ρ‚ΠΈΠΏΠ° Integer. ДСсятичныС значСния ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ управляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ элСмСнта NumericUpDown ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойств Minimum, Maximum, Value ΠΈ Increment. Бвойства Minimum ΠΈ Maximum ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ максимальноС ΠΈ минимальноС значСния элСмСнта. Бвойство Value содСрТит Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°. Бвойство Increment опрСдСляСт Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ увСличСния ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ значСния Π² ΠΏΠΎΠ»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ со стрСлками. Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда увСличиваСтся ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Increment, Π΄Π°ΠΆΠ΅ Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ свойствами Minimum ΠΈ Maximum.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство Value, просто ΡƒΠΊΠ°Π·Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅. Если это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ находится Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Minimum ΠΈ Maximum, Ρ‚ΠΎΠ³Π΄Π° свойства Value ΠΈ Text измСнятся Π² соотвСтствии с Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Если Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ свойство Text ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ число, Π° свойство Value ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ приписано свойству Maximum. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ числа Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π½ΡƒΠΆΠ½ΠΎ для свойства ReadOnly Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния элСмСнта NumericUpDown инициируСтся событиС ValueChanged. Оно Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСняСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΠΈ со стрСлками. ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ числа событиС Π½Π΅ инициируСтся. Π’ листингС 3.7 продСмонстрирован ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования элСмСнта NumericUpDown ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события ValueChanged.

Листинг 3.7

private void numericUpDown1_ValueChanged(object sender, EventArgs e) {

 int year = (int)this.numericUpDown1.Value;

 this.lblNote.Text = "Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ " + year.ToString() + "Π³ΠΎΠ΄";

}

На рис. 3.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнт NumericUpDown.

Рис. 3.5. Π’Ρ‹Π±ΠΎΡ€ Π³ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта NumericUpDown

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с элСмСнтом NumericUpDown слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ функционирования. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ со стрСлкой Π²Π²Π΅Ρ€Ρ…, постоянно увСличивая Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ свойства Increment. ΠŸΡ€ΠΈ достиТСнии максимального значСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² свойствС Maximum, счСтчик сохранит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° экранС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ со стрСлкой Π²Π½ΠΈΠ·, Ρ‚ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ ΠΎΡ‚ максимального значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π° ΠΎΡ‚ послСднСго значСния ΠΏΠ΅Ρ€Π΅Π΄ достиТСниСм максимума.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π˜Ρ‚Π°ΠΊ, Ρƒ нас установлСно Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ 1992. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Increment Ρ€Π°Π²Π½ΠΎ 6, Π° максимум ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 2006. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ наТатия стрСлки Π²Π²Π΅Ρ€Ρ… Π΄ΠΎΠ²Π΅Π΄ΡƒΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с 1992 Π΄ΠΎ 2006. Π˜Ρ‚Π°ΠΊ, максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ достигнуто. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ со стрСлкой, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π²Π½ΠΈΠ·. Казалось Π±Ρ‹, Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ число 2000 (2006-6), Π½ΠΎ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ΠΌ максимального значСния счСтчик Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ» число 2004. ИмСнно ΠΎΡ‚ Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½ΠΈΡ†Π°, ΠΈ Π½Π° экранС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ число 1998.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ DomainUpDown позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ счСтчик с тСкстовым ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ элСмСнт ΠΏΠΎΡ…ΠΎΠΆ Π½Π° элСмСнт NumericUpDown, Π° Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ схоТа с Ρ‚Π΅ΠΌΠΈ возмоТностями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ComboBox ΠΈΠ»ΠΈ ListBox. Но Π² элСмСнтС DomainUpDown вмСсто чисСл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ строки. Π­Ρ‚ΠΎΡ‚ элСмСнт ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся для построСния интСрфСйса, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ вСсьма ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ ΠΈ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста Π½Π° малСньком экранС ΠΊΠ°Ρ€ΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вСсь список. Если свойство ReadOnly ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ строки ΠΈΠ· списка. Если это свойство ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свой тСкст Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹ΠΉ тСкст всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π² список.

Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ элСмСнт NumericUpDown, Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт управлСния содСрТит тСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ со стрСлками с ΠΏΡ€Π°Π²ΠΎΠΉ стороны. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти стрСлки для ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ списка строк ΠΈΠ»ΠΈ ввСсти Π² ΠΏΠΎΠ»Π΅ свой тСкст, Ссли свойство ReadOnly ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False.

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

Листинг 3.8

private void Form1_Load(object sender, System.EventArgs e) {

 domainUpDown1.Items.Add("Item 1");

 domainUpDown1.Items.Add("Item 2");

 domainUpDown1.Items.Add("Item 3");

 domainUpDown1.Items.Add("Item 4");

 domainUpDown1.ReadOnly = true;

}


private void domainUpDown1_SelectedItemChanged(object sender,

 System.EventArgs e) {

 label1.Text = domainUpDown1.SelectedIndex.ToString();

 label2.Text = domainUpDown1.Items[domainUpDown1.SelectedIndex].ToString();

}

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния ProgressBar ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ процСсса выполнСния ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠ»Π³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» иллюзию контроля Π½Π°Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ прилоТСния.

Π§Π°Ρ‰Π΅ всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ свойствами Minimum, Maximum ΠΈ Value. Бвойства Minimum ΠΈ Maximum Π·Π°Π΄Π°ΡŽΡ‚ минимальноС ΠΈ максимальноС значСния свойства Value. А свойство Value опрСдСляСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт отобраТаСтся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π° послС Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ дСлаСтся Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Hide ΠΈΠ»ΠΈ свойства Visible.

Для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° прогрСсса Π±Ρ‹Π»ΠΎ создано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ врСмя Π²Π°Ρ€ΠΊΠΈ яиц Π²ΠΊΡ€ΡƒΡ‚ΡƒΡŽ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ для Π²Π°Ρ€ΠΊΠΈ достаточно Ρ‚Ρ€Π΅Ρ… ΠΌΠΈΠ½ΡƒΡ‚. НуТно ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ яйца Π² Π²ΠΎΠ΄Ρƒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€. По истСчСнии Ρ‚Ρ€Π΅Ρ… ΠΌΠΈΠ½ΡƒΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. Основной ΠΊΠΎΠ΄ прилоТСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.9.

Листинг 3.9

private void tmrCook_Tick(object sender, EventArgs e) {

 if (this.progressBar1.Value < this.progressBar1.Maximum) {

  this.progressBar1.Value += 1;

  lblCounter.Text = this.progressBar1.Value.ToString();

 }

 if (this.progressBar1.Value >= this.progressBar1.Maximum) {

  tmrCook.Enabled = false;

  MessageBox.Show("Π―ΠΉΡ†Π° ΡΠ²Π°Ρ€ΠΈΠ»ΠΈΡΡŒ!");

  this.progressBar1.Value = 0;

  lblCounter.Text = "0";

 }

}


private void butStart_Click(object sender, EventArgs e) {

 tmrCook.Enabled = true;

}

На рис. 3.6 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ прилоТСния Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ отсчСта Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Рис. 3.6. Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прогрСсса, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠ²Π°Ρ€ΠΈΡ‚ΡŒ яйца Π²ΠΊΡ€ΡƒΡ‚ΡƒΡŽ

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

Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния выглядит ΠΊΠ°ΠΊ нСбольшая полоска Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части прилоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ отобраТаСтся тСкстовая информация для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎΡ‚ элСмСнт интСрфСйса рСализуСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта StatusBar. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСкст Π² элСмСнтС StatusBar, достаточно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойству Text. На рис. 3.7 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ прилоТСния Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π° Π² листингС 3.10 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ мСняСт тСкст Π² строкС состояния.

Рис. 3.7. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строкой состояния

Листинг 3.10

private void butClickMe_Click(object sender, EventArgs e) {

 this.statusBar1.Text = "Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ";

}

Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ панСль, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ распознаСт события Click.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния TrackBar ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для установки числового значСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ пСрСмСщСния ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° ΠΏΠΎ числовой шкалС. ΠžΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с элСмСнтом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ выполняСт ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойств Minimum, Maximum ΠΈ Value. ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ. ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° задаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойства Orientation. Бвойство TickFrequency Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ΡˆΠΊΠ°Π»Ρ‹. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства TickFrequency Ρ€Π°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅.