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

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

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

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Closing Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΏΠ°Ρ€Π΅ с Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠΌ CancelEventHandler, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π² пространствС ΠΈΠΌΠ΅Π½ System.ComponentModel. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для свойства CancelEventArgs.Cancel Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true (истина), Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΈ Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для CancelEventArgs.Cancel Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false (лоТь), Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрировано событиС Closed, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows Forms Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ (Π΄ΠΎΠΌΠ΅Π½ прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ процСсс ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½).

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π² памяти ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ событий, происходящих Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ†ΠΈΠΊΠ»Π° сущСствовании Ρ„ΠΎΡ€ΠΌΡ‹, рассмотрим Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» MainWindow.cs, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ события Load, Activated, Deactivate, Closing ΠΈ Closed ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² конструкторС класса Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ (Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ using для пространства ΠΈΠΌΠ΅Π½ System.ComponentModel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ CancelEventArgs).

public MainForm() {

 // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… событий Ρ†ΠΈΠΊΠ»Π° сущСствования Ρ„ΠΎΡ€ΠΌΡ‹.

 Closing += new CancelEventHandler(MainForm_Closing);

 Load += new EventHandler(MainForm_Load);

 Closed += new EventHandler(MainForm_Closed);

 Activated += new EventHandler(MainForm_Activated);

 Deactivate += new EventHandler(MainForm_Deactivate);

}

Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий Load, Closed, Activated ΠΈ Deactivate Π² ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ System.String (с ΠΈΠΌΠ΅Π½Π΅ΠΌ LifeTimeInfo) добавляСтся имя ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ события. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Closed ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой строки Π² ΠΎΠΊΠ½Π΅ сообщСния.

private void MainForm_Load(object sender, System.EventArgs e) { lifeTimeInfo += "Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Load\n"; }

private void MainForm_Activated(object sender, System.EventArgs e) { lifeTimeInfo += "Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Activate\n"; }

private void MainForm_Deactivate(object sender, System.EventArgs e) { lifeTimeInfo += "Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Deactivate\n"; }

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

 lifeTimeInfo += "'Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Closed\n";

 MessageBox.Show(lifeTimeInfΠΎ);

}

Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Closing задаСтся вопрос ΠΎ Ρ‚ΠΎΠΌ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΆΠ΅Π»Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния. ΠŸΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CancelEventArgs.

private void MainForm_Closing(object sender, CancelEventArgs e) {

 DialogResult dr = MessageBox.Show("Π’Ρ‹ Π”Π•Π™Π‘Π’Π’Π˜Π’Π•Π›Π¬ΠΠž Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?", "Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Closing", MessageBoxButtons.YesNo);

 if (dr == DialogResult.No) e.Cancel = true;

 else e.Cancel = false;

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ MessageBox.Show() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ DialogResult, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ (Π”Π°, НСт), Π½Π°ΠΆΠ°Ρ‚ΡƒΡŽ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ скомпилируйтС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

csc /target:winexe *.cs

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ нСсколько Ρ€Π°Π· ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ΅ фокус Π²Π²ΠΎΠ΄Π° ΠΈ ΡƒΠ±Π΅Ρ€ΠΈΡ‚Π΅ Π΅Π΅ ΠΈΠ· фокуса Π²Π²ΠΎΠ΄Π° (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события Activated ΠΈ Deactivate). ПослС прСкращСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊ сообщСний, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½Π° рис. 19.5.

Рис. 19.5. "Биография" Ρ‚ΠΈΠΏΠ°, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ‚ Form

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсных возмоТностСй Ρ‚ΠΈΠΏΠ° Form связано с созданиСм ΠΈ настройкой систСм мСню, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов ΠΈ строк состояния. НСобходимый для этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ слишком слоТСн, Π½ΠΎ Visual Studio 2005 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ графичСских инструмСнтов проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позаботятся ΠΎ создании Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π° вас. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° врСмя скаТСм "Π΄ΠΎ свидания" компилятору ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ займСмся созданиСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows Forms с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual Studio 2005.

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Visual Studio 2005

Π’ Visual Studio 2005 прСдлагаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ шаблон для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows Forms. Π’Ρ‹Π±Ρ€Π°Π² шаблон Windows Application ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ прилоТСния с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Main(), Π½ΠΎ ΠΈ подходящий исходный Ρ‚ΠΈΠΏ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΡ‚ Form. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ Ρ†Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ графичСских инструмСнтов проСктирования, способных ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ процСсс построСния интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π΄Π΅Ρ‚ΡΠΊΡƒΡŽ Π·Π°Π±Π°Π²Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ возмоТности, создайтС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Windows Application (рис. 19.6). ΠœΡ‹ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ собираСмся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

Рис. 19.6. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Windows Application Π² Visual Studio 2005

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΊΠ½ΠΎ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΏΡƒΡ‚Π΅ΠΌ пСрСтаскивания элСмСнтов управлСния ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов (ΠΎΠΊΠ½ΠΎ Toolbox, рис. 19.7), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ свойства ΠΈ события этих элСмСнтов управлСния ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΊΠ½Π° свойств (ΠΎΠΊΠ½ΠΎ Properties, рис. 19.8).

Рис. 19.7. ПанСль инструмСнтов Visual Studio 2005

Рис. 19.8. Окно свойств Visual Studio 2005

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, элСмСнты управлСния Π² ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов сгруппированы ΠΏΠΎ катСгориям. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своСм эти ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ самоочСвидны – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, катСгория Printing (ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ) содСрТит срСдства управлСния ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ. Menus & Toolbars (МСню ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов) содСрТит Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ элСмСнты управлСния для мСню ΠΈ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов ΠΈ Ρ‚.Π΄. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠ°Ρ€Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ заслуТиваСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ обсуТдСния.

β€’ Common Controls (ΠžΠ±Ρ‰ΠΈΠ΅ элСмСнты управлСния). Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ "Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ" ΠΎΠ±Ρ‰ΠΈΡ… элСмСнтов управлСния для построСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

β€’ All Windows Forms (ВсС элСмСнты управлСния Windows Forms). Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ элСмСнтов управлСния Windows Forms, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ элСмСнты управлСния .NET 1.Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… здСсь ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² заслуТиваСт Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Windows Forms Π² Ρ€Π°ΠΌΠΊΠ°Ρ… .NET 1.x, Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Π΅ для вас элСмСнты управлСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, элСмСнт управлСния DataGrid) находятся ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎΠ΄ "Π·Π½Π°ΠΊΠΎΠΌ" ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ All Windows Forms. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ элСмСнты управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… .NET 1.x (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MainMenu, ToolBar ΠΈ Statusbar) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Toolbox Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ элСмСнтам управлСния

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… здСсь ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌΠΈ для использования Π² .NET 2.0, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ снова Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² панСль инструмСнтов. Для этого Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² любом мСстС ΠΎΠΊΠ½Π° Toolbox (ΠΊΡ€ΠΎΠΌΠ΅ строки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°) ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Choose Items (Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ элСмСнты) ΠΈΠ· появившСгося контСкстного мСню. Π’ появившСмся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ послС этого ΠΎΠΊΠ½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ элСмСнты (рис. 19.9).

Рис. 19.9. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов управлСния Π½Π° панСль инструмСнтов

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π° спискС Π² ΠΎΠΊΠ½Π΅ добавлСния элСмСнтов управлСния ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ повторСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для элСмСнта управлСния ToolBar). На самом ΠΆΠ΅ Π΄Π΅Π»Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт списка ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт управлСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2.0 вмСсто 1.0) ΠΈ/ΠΈΠ»ΠΈ Π±Ρ‹Ρ‚ΡŒ элСмСнтом .NET Compact Framework. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ элСмСнт.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, я ΡƒΠ²Π΅Ρ€Π΅Π½, Π²Ρ‹ спроситС, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· старых элСмСнтов скрыты ΠΎΡ‚ просмотра. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ .NET 2.0 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ мСню, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов ΠΈ срСдств отобраТСния состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ сСгодня отдаСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅. НапримСр, вмСсто ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ элСмСнта управлСния MainMenu для создания мСню прСдлагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт управлСния MenuStrip, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ряд Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ возмоТностям, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π²ΡˆΠΈΠΌΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… MainMenu.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ сСгодня мноТСство элСмСнтов управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ MainMenu, Statusbar ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ .NET Framework 2.0 SDK.

Анализ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Windows Forms Π² Visual Studio 2005

Π›ΡŽΠ±ΠΎΠΉ Ρ‚ΠΈΠΏ Form ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Windows Forms Π² Visual Studio 2005 прСдставлСн двумя связанными C#-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π² Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ нСпосрСдствСнно, заглянув Π² ΠΎΠΊΠ½ΠΎ Solution Explorer (рис. 19.10).

Рис. 19.10. КаТдая Ρ„ΠΎΡ€ΠΌΠ° являСтся ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² *.cs

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Form1.cs ΠΈ Π² появившСмся контСкстном мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ View Code (ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°). Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠ°Ρ€Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ класса, содСрТащСго ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Ρ„ΠΎΡ€ΠΌΡ‹, конструкторы, пСрСопрСдСлСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹ созданного Π²Π°ΠΌΠΈ класса (Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь имя исходного класса Form1 Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° MainWindow с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° Rename ΠΈΠ· мСню Refactor).

namespace MyVisualStudioWinApp {

 public partial class MainWindow: Form {

  public MainWindow() {

   InitializeComponent();

  }

 }

}

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ InitializeComponent(), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ *.Designer.cs. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСтся Π² Visual Studio 2005 автоматичСски, ΠΈ Π² Π½Π΅ΠΌ автоматичСски ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ всС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ выполняСмыС Π²Π°ΠΌΠΈ Π² ΠΎΠΊΠ½Π΅ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹.