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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET Compact FrameworkΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 40

Автор Иво Π‘Π°Π»ΠΌΡ€Π΅

   // 2. Настройка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…/состояния ΠΈΠ³Ρ€Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…

   // Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹

   //

   // SetUpGameStateForCongratulateUser();

   break;

  case GameState.ScoldUser:

   //Если ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π΄Π°Π½Π½ΠΎΠ΅ состояниС осущСствляСтся ΠΈΠ· состояния,

   //для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ это Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ, Π²ΠΎΠ·Π±ΡƒΠ΄ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

   if (m_CurrentGameState != GameState.AskQuestion) {

    throw new System.Exception("Π—Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄!");

   }

   //ЧВО БДЕЛАВЬ: ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ сюда ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

   // 1. Π‘ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ (Hide), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Show) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ (Move)

   // элСмСнтов управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса

   // 2. Настройка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…/состояния ΠΈΠ³Ρ€Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…

   // Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹

   //

   // SetUpGameStateForScoldUser();

   break;

  default:

   throw new System.Exception("НСизвСстноС состояниС!");

  }

  //Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅ состояниС Π² качСствС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ

  m_CurrentGameState = newGameUIState;

 }

} //ΠšΠΎΠ½Π΅Ρ† класса

Π―Π²Π½ΠΎ ΠΈ нСявно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ это ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Π½ΠΎ ваш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ состояниями. НапримСр, Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт управлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСдоступным для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠ±ΠΈΠ²Π°ΡŽΡ‚ΡΡ этого, устанавливая для свойств Enabled ΠΈ Visible этих элСмСнтов управлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TextBox1.Visible = false;). Для написания ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° сущСствуСт Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½ΠΈΠΆΠ΅

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ 1: зависящСС ΠΎΡ‚ спСцифики ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации, Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅, нСявноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниями (Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄)

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ проСктирования, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ ΡƒΡ‡Π΅Ρ‚ спСцифики ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, часто встрСчаСтся Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ постСпСнно услоТняСтся. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ аспСкты состояния прилоТСния ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах прилоТСния. Π”Π°Π½Π½Ρ‹Π΅ ΠΎ состоянии хранятся Π² Ρ‚Π°ΠΊΠΈΡ… свойствах элСмСнтов управлСния, ΠΊΠ°ΠΊ Visible, Enabled, Size ΠΈΠ»ΠΈ Position. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для хранСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ нСпосрСдствСнно Π² Ρ‚Π΅Ρ… строках ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ это оказываСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ, Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ освобоТдСниС памяти ΠΎΡ‚ Π½ΠΈΡ… Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ всСму ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации. Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ событий Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ "пСрСтягиваниС ΠΊΠ°Π½Π°Ρ‚Π°" ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями прилоТСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ каТдая ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для выполнСния Π²ΠΎΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π° Π½Π΅Π΅ Π·Π°Π΄Π°Ρ‡, Π½Π΅ обращая Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ внимания Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ повСдСния ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ события ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠ°ΠΊ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт встроСнный ΠΊΠΎΠ΄, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ состояниС прилоТСния. Π’ листингС 5.2 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² классах Ρ„ΠΎΡ€ΠΌΡ‹ прилоТСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… описанному ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ. Как ΠΊΠΎΠ΄ события Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ form1, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠ΄ события Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ button1 вносят измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΎΠ±Ρ‰Π΅Π΅ состояниС Ρ„ΠΎΡ€ΠΌΡ‹.

Листинг 5.2. НСявноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояний прилоТСния (Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄)

//Код, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

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

 textBox1.Visible = true;

 listBox1.Visible = false;

}

string m_someImportantInfo;

//ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, ТСлая ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ

//ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага, прСдусмотрСнного Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ

//тСкстовоС ΠΎΠΊΠ½ΠΎ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ списка Π² ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ для этого мСстС

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

 m_someImportantInfo = textBox1.Text;

 textBox1.Visible = false;

 listBox1.Visible = true;

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ 2: ΠΏΠ»Π°Π½ΠΎΠ²ΠΎΠ΅, Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅, явноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниями (ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄)

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

Листинг 5.3. Π―Π²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояний прилоТСния (ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄)

string m_someImportantInfo;

//ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

enum MyStates {

 step1, step2

}

//Главная функция, которая вызываСтся

//всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ

//Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния прилоТСния

void ChangeApplicationState(MyStates newState) {

 switch (newState) {

 case MyStates.step1:

  textBox1.Visible = true;

  listBox1.Visible = false;

  break;

 case MyStates.step2:

  m_someImportantInfo = textBox1.Text;

  textBox1.Visible = false;

  listBox1.Visible = true;

  break;

 }

}

//ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, ТСлая ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ

//ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага, прСдусмотрСнного Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ

//тСкстовоС ΠΎΠΊΠ½ΠΎ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ списка Π² ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ для этого мСстС

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

 //Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния

 ChangeApplicationState(MyStates.step2);

}

//Код, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

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

 //Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния

 ChangeApplicationState(MyStates.step1);

}

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

ΠŸΠΎΡΡ‚ΠΎΠΉΡ‚Π΅-ΠΊΠ°! Но вСдь Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях. Π Π°Π·Π²Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡ… ΠΊΠΎΠ΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ‚Π°ΠΊ: "НСт, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½". Π’Π°Ρˆ ΠΊΠΎΠ΄ вовсС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ мСньшС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, Ρ‡Π΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² β€” ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅! Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Ρ‹Ρ‚ΡƒΠ΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° зрСния, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π»ΡŽΠ±ΡƒΡŽ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΊΠΎΠ΄. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠΈΠΌΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ проСктирования. НазовСм эту Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ "ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄ микроскопом".

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

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