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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π—Π«Πš ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π― Π‘# 2005 И ΠŸΠ›ΠΠ’Π€ΠžΠ ΠœΠ .NET 2.0. 3-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 194

Автор Π­Π½Π΄Ρ€ΡŽ ВроСлсСн

Рис. 21.8 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Ρ„ΠΎΡ€ΠΌΡ‹ CarConfig

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

private void InitializeComponent() {

 β€¦

 // checkFloorMats

 //

 this.checkFloorMats.Name = "checkFloorMats";

 this.checkFloorMats.Text = "ЗапасныС ΠΊΠΎΠ²Ρ€ΠΈΠΊΠΈ для ΠΌΠ°ΡˆΠΈΠ½Ρ‹";

 this.Controls.Add(this.checkFloorMats);

 β€¦

}

Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ GroupBox ΠΈ содСрТащиСся Π² Π½Π΅ΠΌ Ρ‚ΠΈΠΏΡ‹ RadioButton. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт управлСния Π² Ρ€Π°ΠΌΠΊΠ°Ρ… GroupBox, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Controls Ρ‚ΠΈΠΏΠ° GroupBox (Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ добавляли элСмСнты управлСния Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Controls Ρ„ΠΎΡ€ΠΌΡ‹). Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ интСрСснСС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ свойств ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ событий Enter ΠΈ Leave для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° GroupBox, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

private void InitializΠ΅Component() {

 β€¦

 // RadioRed

 this.radioRed.Name = "radioRed";

 this.radioRed.Size = nΠ΅w System.Drawing.Size(04, 23);

 this.radioRed.Text = ''ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ";

 //

 // groupBoxColor

 //

 β€¦

 this.groupBoxColor.Controls.Add(this.radioRed);

 this.groupBoxColor.Text = "Π¦Π²Π΅Ρ‚";

 this.groupBoxColor.Enter += new System.EventHandler(this.groupBoxColor_Enter);

 this.groupBoxColor.Leave += new System.EventHandler(this.groupBoxColor_Leave);

 β€¦

}

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ нСобходимости Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‚ событий Enter ΠΈ Leave Π² GroupBox. Однако, для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий тСкст Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° GroupBox, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

// Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ посСщСния Π³Ρ€ΡƒΠΏΠΏΡ‹.

private void groupBoxColor_Leave(object sender, EventArgs e) {

 groupBoxColor.Text = "Π¦Π²Π΅Ρ‚: спасибо, Π·Π° посСщСниС этой группы…";

}

private void groupBoxColor_Enter(object sender, EventArgs e) {

 groupBoxColor.Text = "Π¦Π²Π΅Ρ‚: Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² этой группС…";

}

ПослСдними элСмСнтами графичСского интСрфСйса Π² этой Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΈΠΏΡ‹ Label ΠΈ Button, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ сконфигурированы ΠΈ вставлСны Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Controls Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ InitializeComponent(). Π’ΠΈΠΏ Label ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ°Π·Π°, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события Click ΠΊΠ½ΠΎΠΏΠΊΠΈ Button подтвСрТдСния Π·Π°ΠΊΠ°Π·Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

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

 // ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ строки для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

 string orderInfo = "";

 if (checkFloorMats.Checked) orderInfo += "Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ²Ρ€ΠΈΠΊΠΈ.\n";

 if (radioRed.Checked) orderInfo += "Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ красный Ρ†Π²Π΅Ρ‚.\n";

 if (radioYellow.Checked) orderInfo += "Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.\n";

 if (radioGreen.Checked) orderInfo += "Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.\n";

 if (radioPink.Checked) orderInfo += "А ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π ΠžΠ—ΠžΠ’Π«Π™ Ρ†Π²Π΅Ρ‚?\n";

 // ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° строки элСмСнту Label.

 infoLabel.Text = orderInfo;

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ CheckBox, Ρ‚Π°ΠΊ ΠΈ RadioButton ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ свойство Checked, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС элСмСнта. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ сконфигурировали CheckBox с трСмя состояниями, Ρ‚ΠΎ состояниС элСмСнта Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства CheckState.

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

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

Рис. 21.9. Вип CheckedListBox

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² CheckedListBox Π½ΠΎΠ²Ρ‹Π΅ элСмСнты, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Add() для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ AddRange() с массивом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (строк, Ссли Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ), ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… вСсь Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅ΠΌΡ‹Ρ… элСмСнтов управлСния. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ проСктирования любой Ρ‚ΠΈΠΏ списка ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств Items Π² ΠΎΠΊΠ½Π΅ свойств (просто Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ подходящиС строковыС значСния). Π’ΠΎΡ‚ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° InitializeComponent(), ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ CheckedListBox.

private void InitializeComponent() {

 β€¦

 // checkedBoxRadioOptions

 //

 this.checkedBoxRadioOptions.Items.AddRange(new object[] {

  "Π€Ρ€ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ АБ", "8-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π²ΡƒΠΊ",

  "CD-ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ", "ΠšΠ°ΡΡΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ",

  "Выловая AC", "Π£Π»ΡŒΡ‚Ρ€Π°-бас(сабвуфСр)"

 });

 β€¦

 this.Controls.Add(this.checkedBoxRadioOptions);

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Click для ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·. ВыяснитС, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· элСмСнтов CheckedListBox Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹, ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Π² строку orderInfo. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

private void btnOrder_Click(object sender, EventArgs e) {

 // ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ строки с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для отобраТСния.

 string orderInfo = "";

 β€¦

 orderInfo += "-------------------------------\n";

 // Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· CheckedListBox.

 for (int i = 0; i β€Ή checkedBoxRadioOptions.Items.Count; i++) {

  // ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½ Π»ΠΈ элСмСнт?

  if (checkedBoxRadioOptions.GetItemChecked(i)) {

   // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ тСкста элСмСнта ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ orderInfo.

   orderInfo += "ΠžΠΏΡ†ΠΈΡ Ρ€Π°Π΄ΠΈΠΎ: ";

   orderInfo += checkedBoxRadioOptions.Items[i].ToString();

   orderInfo += "\n";

  }

 }

 β€¦

}

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

checkedBoxRadioOptions.MultiColumn = true;

Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ CheckedListBox, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 21.10.

Рис. 21.10. ΠœΠ½ΠΎΠ³ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ CheckedListBox

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

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΈΠΏ CheckedListBox наслСдуСт Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ своих возмоТностСй ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ListBox (ΠΎΠΊΠ½ΠΎ списка). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ возмоТности использования Ρ‚ΠΈΠΏΠ° ListBox, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ CarConfig Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΌΠ°Ρ€ΠΊΠΈ автомобиля (BMW, Yugo ΠΈ Ρ‚.Π΄.). Нa рис. 21.11 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ.

Рис. 21.11. Вип ListBox

Как всСгда, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с создания Ρ‡Π»Π΅Π½Π°-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠΎΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это Ρ‚ΠΈΠΏ ListBox). Π—Π°Ρ‚Π΅ΠΌ сконфигурируйтС элСмСнт управлСния Π² соотвСтствии со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΈΠ· InitializeComponent().

private void InitializeComponent() {

 β€¦

 // carMakeList

 //

 this.carMakeList.Items.AddRange(new object[] {"BMW", "Caravan", "Ford", "Grand Am", "Jeep", "Jetta", "Saab", "Viper", "Yugo"});

 β€¦

 this.Controls.Add(this.carMakeList);

}

ИзмСнСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий btnOrder_Click() Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ просты.

private void btnOrder_Click(object sender, EventArgs e) {

 // ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ строки для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

 string orderInfo = "";

 β€¦

 // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта (Π½Π΅ индСкса!).

 if (carMakeList.SelectedItem != null) orderInfo += "ΠœΠ°Ρ€ΠΊΠ°: " + carMakeList.SelectedItem + "\n";

 β€¦

}

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

Подобно ListBox, Ρ‚ΠΈΠΏ ComboBox (ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ) позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° возмоТностСй. Однако Ρ‚ΠΈΠΏ ComboBox ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‚Π°ΠΊΠΆΠ΅ позволяСтся Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты. Напомним, Ρ‡Ρ‚ΠΎ ComboBox получаСтся ΠΈΠ· ListBox (Π° послСдний, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, получаСтся ΠΈΠ· Control). Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ возмоТностСй использования рассматриваСмого элСмСнта Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΡƒ прилоТСния CarConfig Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ввСсти имя ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ. Если ΠΈΠΌΠ΅Π½ΠΈ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π° Π² спискС Π½Π΅Ρ‚, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ имя. Одна ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ интСрфСйса ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис 21.12 (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π°ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅).

Рис. 21.12. Вип ComboBox

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ модификация начинаСтся с настройки самого ComboBox. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ здСсь программная Π»ΠΎΠ³ΠΈΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ΅ ListBox.

private void InitializeComponent() {

 β€¦

 // comboSalesPerson

 //

 this.comboSalesPerson.Items.AddRange(new object[] {"ΠœΠ°Π»Ρ‹ΡˆΠΊΠ° Π‘ΠΈ-Π‘ΠΈ", "Дэн \' Машина\'", "Π”ΠΆΠΎΠΉ КолСсо", "Π’ΠΈΠΌΠΎΠ½ Π€Π°Ρ€Π°"});

 β€¦

 this.Controls.Add(this.comboSalesPerson);

}

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий btnOrder_Click() снова оказываСтся ΠΎΡ‡Π΅Π½ΡŒ простой.