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

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

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

private void DisableAllButtos() {

 foreach (Control с in this.Controls) {

  if (c is Button) ((Button)c).Enabled = false;

 }

}

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ControlsByHand Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π³Π»Π°Π²Π΅ 21.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов управлСния Π² Ρ„ΠΎΡ€ΠΌΡƒ Π² Visual Studio 2005

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΡΡƒΡ‚ΡŒ процСсса добавлСния элСмСнтов управлСния Π² Ρ„ΠΎΡ€ΠΌΡƒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ Visual Studio 2005 ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот процСсс. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Windows Application, Π²Ρ‹Π±Ρ€Π°Π² дня Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ имя, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для тСстирования. Аналогично рассмотрСнному Π² Π³Π»Π°Π²Π΅ 19 ΡΠ»ΡƒΡ‡Π°ΡŽ создания мСню, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов ΠΈ строк состояния, ΠΊΠΎΠ³Π΄Π° срСда IDE выполняла автоматичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ подходящСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„Π°ΠΉΠ» *.Designer.cs, Ρ‚Π΅ ΠΆΠ΅ дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈ пСрСтаскивании Π² ΠΎΠΊΠ½ΠΎ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта управлСния. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ внСшнСго Π²ΠΈΠ΄Π° элСмСнта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΊΠ½Π° свойств IDE выполняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‡Π»Π΅Π½Π°-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ InitializeComponent() (Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ *.Designer.cs).

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

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‚ΠΈΠΏΡ‹ TextBox (тСкстовоС ΠΎΠΊΠ½ΠΎ) ΠΈ Button (ΠΊΠ½ΠΎΠΏΠΊΠ°). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ полоТСния элСмСнта управлСния Π² ΠΎΠΊΠ½Π΅ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ Visual Studio 2005 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ подсказки, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ размСщСния ΠΈ выравнивания этого элСмСнта (рис. 21.2).

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

private void InitializeComponent() {

 this.btnMyButton = new System.Windows.Forms.Button();

 this.txtMyTextBox = new System.Windows.Forms.TextBox();

 β€¦

 // MainWindow

 //

 β€¦

 this.Controls.Add(this.txtMyTextBox);

 this.Controls.Add(this.btnMyButton);

 β€¦

}

Рис. 21.2. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ подсказки ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ выравнивания ΠΈ размСщСния элСмСнтов управлСния Π² Ρ„ΠΎΡ€ΠΌΠ΅

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ Visual Studio 2005, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΈΠ·Π±Π°Π²Π»ΡΡŽΡ‚ вас ΠΎΡ‚ нСобходимости Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, избавляя ΠΈ ΠΎΡ‚ Π±ΠΎΠ»ΠΈ Π² ΠΏΠ°Π»ΡŒΡ†Π°Ρ…). Π˜Ρ‚Π°ΠΊ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Π°ΡˆΠΈΡ… дСйствий Π² ΠΎΠΊΠ½Π΅ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ автоматичСски ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ InitializeComponent(). Но Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты управлСния ΠΈ нСпосрСдствСнно Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ (Π² конструкторах, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… функциях ΠΈ Ρ‚.Π΄.), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ InitializeComponent() являСтся созданиС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния элСмСнтов интСрфСйса. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ сСбС Тизнь, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ Visual Studio 2005 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ InitializeComponent() автоматичСски, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ срСдства проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ измСнСния, сдСланныС Π²Π°ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ элСмСнтами управлСния

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ System.Windows.Forms опрСдСляСт мноТСство "Π±Π°Π·ΠΎΠ²Ρ‹Ρ… элСмСнтов управлСния", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΊΠ½Π°Ρ… (это ΠΊΠ½ΠΎΠΏΠΊΠΈ, надписи, тСкстовыС ΠΎΠΊΠ½Π°, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ‚.Π΄.). Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± основных возмоТностях ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсныС особСнности ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… элСмСнтов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса:

β€’ Label (надпись), TextBox (тСкстовоС ΠΎΠΊΠ½ΠΎ) ΠΈ MaskedTextBox (маскированноС тСкстовоС ΠΎΠΊΠ½ΠΎ);

β€’ Button (ΠΊΠ½ΠΎΠΏΠΊΠ°);

β€’ CheckBox (ΠΊΠ½ΠΎΠΏΠΊΠ° с нСзависимой фиксациСй), RadioButton (ΠΊΠ½ΠΎΠΏΠΊΠ° с зависимСй фиксациСй) ΠΈ GroupBox (Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ Π±Π»ΠΎΠΊ);

β€’ CheckedListBox (ΠΎΠΊΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅ΠΌΠΎΠ³ΠΎ списка), ListBox (ΠΎΠΊΠ½ΠΎ списка) ΠΈ ComboBox (ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ).

Освоив Ρ€Π°Π±ΠΎΡ‚Ρƒ с этими элСмСнтами управлСния, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Control, ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ "экзотичСскиС" элСмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MonthCalendar, TabControl, TrackBar, WebBrowser ΠΈ Ρ‚.Π΄.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния Label (надпись) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния (тСкст ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈ возмоТности использования ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов управлСния, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΡƒ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ создали Π² Visual Studio 2005 Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Windows Forms с ΠΈΠΌΠ΅Π½Π΅ΠΌ LabelsAndTextBoxes. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ экзСмпляра Ρ‚ΠΈΠΏΠ° Form ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΈΠΌΠ΅Π½Π΅ΠΌ CreateLabelControl(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сначала создаСт ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏ Label, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСт Π΅Π³ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов управлСния Ρ„ΠΎΡ€ΠΌΡ‹,

private void CreateLabelControl() {

 // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ конфигурация Label.

 Label lblInstructions = new Label();

 lblInstructions.Name = "lblInstructions";

 lblInstructions.Text = ''Π’Π²Π΅Π΄ΠΈΡ‚Π΅ значСния Π²ΠΎ всС ΠΎΠΊΠ½Π° тСкста";

 lblInstructions.Font = new Font("Times New Roman", 9.75F, FontStyle.Bold);

 lblInstructions.AutoSize = true;

 lblInstructions.Location = new System.Drawing.Point(16, 13);

 lblInstructions.Size = new System.Drawing.Size(240, 16);

 // Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов управлСния Ρ„ΠΎΡ€ΠΌΡ‹.

 Controls.Add(lblInstructions);

}

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ подсказку Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ„ΠΎΡ€ΠΌΡ‹, помСститС Π²Ρ‹Π·ΠΎΠ² этой Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² конструктор Ρ„ΠΎΡ€ΠΌΡ‹.

public MainWindow() {

 InitializeComponent();

 CreateLabelControl();

 CenterToScreen();

}

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов, элСмСнты управлСния Label Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… ΠΏΠΎ клавишС табуляции. Однако Π² .NET 2.0 для любого элСмСнта управлСния Label ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мнСмоничСскиС клавиши установив для свойства UseMnemonic Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true (ΠΈΠΌΠ΅Π½Π½ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ устанавливаСтся для Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). ПослС этого Π² свойствС Text надписи ΠΌΠΎΠΆΠ½ΠΎ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа ампСрсанда &) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту управлСния.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ табуляции ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ·ΠΆΠ΅, Π° ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ достаточно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ порядок Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта управлСния ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… ΠΏΠΎ клавишС табуляции устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства TabIndex. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TabIndex элСмСнта управлСния соотвСтствуСт порядку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ элСмСнты добавлялись Π² ΠΎΠΊΠ½ΠΎ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ сначала Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Label, Π° Π·Π°Ρ‚Π΅ΠΌ – Textbox, Ρ‚ΠΎ для Label Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TabIndex Π±ΡƒΠ΄Π΅Ρ‚ установлСно Ρ€Π°Π²Π½Ρ‹ΠΌ 0, Π° для Textbox – Ρ€Π°Π²Π½Ρ‹ΠΌ 1.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΊΠ½Π° проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ постройтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, состоящий ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Label ΠΈ Ρ‚Ρ€Π΅Ρ… Textbox (рис. 21.3). НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свободноС мСсто Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„ΠΎΡ€ΠΌΡ‹ для отобраТСния элСмСнта Labels динамичСски создаваСмого Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ CreateLabelControl(), ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ здСсь каТдая надпись содСрТит ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ. Π’Π°ΠΊ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π±ΡƒΠΊΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ свойства Text надписи Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π·Π½Π°ΠΊΠΎΠΌ &. Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΎΠΌ & символы ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш β€ΉAlt+ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ символ›.

Рис. 21.3. НазначСниС ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊ элСмСнтам управлСния Label

Запустив ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²Ρ‹ смоТСтС ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов TextBox, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ β€ΉAlt+nβ€Ί, β€ΉAlt+Mβ€Ί ΠΈΠ»ΠΈ β€ΉAlt+Tβ€Ί.

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

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ элСмСнта управлСния Label, элСмСнт управлСния TextBox (тСкстовоС ΠΎΠΊΠ½ΠΎ) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ являСтся доступным Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния (хотя Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, Ссли ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для свойства ReadOnly Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true) ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π· для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ввСсти тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ΠΈΠΏ TextBox ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΠ΄Π½ΠΎΠΉ строки тСкста ΠΈΠ»ΠΈ мноТСства строк, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° маскировку Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ, *) ΠΈ Π² случаС многострочного Π²Π²ΠΎΠ΄Π° этот элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ возмоТностям, унаслСдованным ΠΎΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов, TextBox опрСдСляСт нСсколько своих интСрСсных свойств (Ρ‚Π°Π±Π». 21.2).

Π’Π°Π±Π»ΠΈΡ†Π° 21.2. Бвойства TextBox

Бвойство ОписаниС AcceptsReturn Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ нСобходимости ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ β€ΉEnterβ€Ί Π² элСмСнтС управлСния TextBox, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅ΠΌ многострочный Π²Π²ΠΎΠ΄ (ΠΈΠ½Π°Ρ‡Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ β€ΉEnterβ€Ί Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) CharacterCasing Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ измСнСния элСмСнтом управлСния TextBox рСгистра символов ΠΏΡ€ΠΈ ΠΈΡ… Π²Π²ΠΎΠ΄Π΅ PasswordChar Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ символ, примСняСмый для маскировки Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов Π² однострочном элСмСнтС управлСния TextBox, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ для Π²Π²ΠΎΠ΄Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ScrollBars Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π² элСмСнтС управлСния TextBox, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅ΠΌ многострочный Π²Π²ΠΎΠ΄ TextAlign Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пСрСчня HorizontalAlignment ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° выравнивания тСкста Π² элСмСнтС управлСния TextBox

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности TextBox, помСститС Π² Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Ρ€ΠΈ элСмСнта ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ TextBox. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт TextBox (с ΠΈΠΌΠ΅Π½Π΅ΠΌ txtPassword) слСдуСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ для Π²Π²ΠΎΠ΄Π° пароля, Ρ‚.Π΅. символы, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² ΠΏΠΎΠ»Π΅ TextBox, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ, Π° вмСсто Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ символы, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ свойства PasswordChar.