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

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

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

 ColumnHeader columnHeader3 = new ColumnHeader();


 columnHeader1.Text = "Ѐамилия";

 columnHeader2.Text = "Имя";

 columnHeader3.Text = "E-mail";


 listView1.Columns.Add(columnHeader1);

 listView1.Columns.Add(columnHeader2);

 listView1.Columns.Add(columnHeader3);


 ListViewItem Contact1 = new ListViewItem("Иванов");

 Contact1.SubItems.Add("Иван");

 Contact1.SubItems.Add(" [email protected]");


 ListViewItem Contact2 = new ListViewItem("ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²");

 Contact2.SubItems.Add("ΠŸΠ΅Ρ‚Ρ€");

 Contact2.SubItems.Add(" [email protected]");


 ListViewItem Contact3 = new ListViewItem("Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²");

 Contact3.SubItems.Add("ΠΡ€Π½ΠΎΠ»ΡŒΠ΄");

 Contact3.SubItems.Add(" [email protected]");


 listView1.Items.Add(Contact1);

 listView1.Items.Add(Contact2);

 listView1.Items.Add(Contact3);

}

На рис. 3.12 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ прилоТСния со списком Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Рис. 3.12. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтом ListView

Π’ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework элСмСнт управлСния ListView ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ свойство MultiSelect, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСсколько элСмСнтов ΠΈΠ· списка. ВСрсия .NET Compact Framework Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½ΠΎΠ΅ свойство, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния TabControl ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΏΡ€ΠΈ создании интСрфСйсов для устройств с ΠΌΠ°Π»Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ экрана, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ многостраничныС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°. Π’ΠΊΠ»Π°Π΄ΠΊΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Π΅ этим элСмСнтом, ΠΈΠΌΠ΅ΡŽΡ‚ ярлычки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ страниц. И ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ страничками, просто щСлкая ΠΏΠΎ этим ярлычкам.

Π’ устройствах Pocket PC Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π°. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ элСмСнт TabControl всСгда располагаСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. НапримСр, Ссли ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ TabControl Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ, Ρ‚ΠΎ ΠΎΠ½ появится Π² Π΅Π΅ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ. Если ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ располоТСниС этого элСмСнта, Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° панСль, которая являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ TabControl.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ TabControl слСдуСт Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. Π£ Π½Π΅Π³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ созданы Π²ΠΊΠ»Π°Π΄ΠΊΠΈ tabPage1 ΠΈ tabPage2. Если Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Ρ‚ΠΎ слСдуСт Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° малСнькой стрСлкС Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части элСмСнта TabControl ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ мСню Add Tab (рис. 3.13).

Рис. 3.13. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π² элСмСнтС TabControl

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρƒ элСмСнта TabControl появится новая Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² соотвСтствии с потрСбностями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ программист ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ услугами Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° TabPage Collection Editor для добавлСния Π½ΠΎΠ²Ρ‹Ρ… Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ. Π’ этом случаС Π½Π°Π΄ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ элСмСнт TabControl Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π°ΠΉΡ‚ΠΈ свойство TabPages ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ рСдактирования этого свойства. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ. Для управлСния Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ TabControl, Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ контСкстного мСню Add Tab ΠΈΠ»ΠΈ Remove Tab.

Для опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство SelectedIndex. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства инициируСтся событиС SelectedIndexChanged, Ρ‡Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² листингС 3.22.

Листинг 3.22

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) {

 switch (this.tabControl1.SelectedIndex) {

 case 0:

  MessageBox.Show("Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ");

  break;

 case 1:

  MessageBox.Show("Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ");

  break;

 case 2:

  MessageBox.Show("Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ");

  break;

 }

}

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния TreeView позволяСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² иСрархичСском Π²ΠΈΠ΄Π΅. ИмСнно Π² этом Π²ΠΈΠ΄Π΅ отобраТаСтся структура дисковой систСмы Π² Π»Π΅Π²ΠΎΠΉ части Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ Windows. Основой элСмСнта TreeView ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ TreeNode ΠΈ Nodes. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с TreeView Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ элСмСнт управлСния ImageList, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для ΡƒΠ·Π»ΠΎΠ².

Π—Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π½Π° этапС конструирования Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΈ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для создания Π΄Π΅Ρ€Π΅Π²Π° Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅Π΅ элСмСнт TreeView. Π—Π°Ρ‚Π΅ΠΌ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ свойство Nodes ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ TreeNode Editor. Кнопка Add Root ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° созданиС ΡƒΠ·Π»ΠΎΠ² Π΄Π΅Ρ€Π΅Π²Π°. Кнопка Add Child позволяСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ. Кнопка Delete удаляСт Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π».

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ тСкст, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² ΡƒΠ·Π»Π°Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Text. Π’Π°ΠΊΠΆΠ΅ Π² ΡƒΠ·Π»Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния, для Ρ‡Π΅Π³ΠΎ примСняСтся комбинация элСмСнта управлСния ImageList ΠΈ свойства SelectedImageList. Для опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство SelectedNode.

На рис. 3.14 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнт интСрфСйса TreeView.

Рис. 3.14. ИспользованиС элСмСнта TreeView

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния InputPanel позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ распознавания Π·Π½Π°ΠΊΠΎΠ² SIP (Soft Input Panel). Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π½Π΅Ρ‚, Ρ‚ΠΎ стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ нСсколько ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π½Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, поэтому для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ состоянии ΠΎΠ½Π° Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΈ находится Π² свСрнутом состоянии. Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ стилусом ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ экрана, Π³Π΄Π΅ располагаСтся мСню ΠΈΠ»ΠΈ панСль инструмСнтов ToolBar. Π’ΠΎΠ³Π΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° появится Π½Π° экранС, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ состояниСм ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. НапримСр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта InputPanel ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС SIP, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π΅ отобраТСния ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ. Бвойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρƒ элСмСнта InputPanel Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ класса ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ спискС.

β–‘ Bounds β€” ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ SIP.

β–‘ VisibleDesktop β€” ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ экрана, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ отобраТаСтся SIP.

β–‘ Enabled β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SIP.

β–‘ EnabledChanged β€” событиС, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния SIP.

Бвойства Bounds ΠΈ VisibleDesktop доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ SIP ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… клиСнтской области, Π½Π΅ занятой SIP. Бвойство VisibleDesktop опрСдСляСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ экрана, Π½Π΅ закрытая SIP. Когда Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° отобраТаСтся, Ρ‚ΠΎ условный ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ поднимаСтся ΠΎΡ‚ полоски Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΎΠΊΠ½ΠΎΠΌ SIP. Когда SIP скрыт, Ρ‚ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всС пространство экрана.

Бвойство Bounds описываСт Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° отобраТаСтся Π½Π° экранС. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ этого ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, Π΄Π°ΠΆΠ΅ Ссли Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° скрыта.

Бвойство Enabled ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ссли Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° отобраТаСтся Π½Π° экранС. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, скрывая ΠΈΠ»ΠΈ отобраТая ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ.

Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт InputPanel, Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π½Π΅ Π·Π°Π³ΠΎΡ€ΠΎΠ΄ΠΈΠ» элСмСнты управлСния Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просто Π½Π΅ смоТСт ввСсти Π΄Π°Π½Π½Ρ‹Π΅.

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

Листинг 3.23

private void txtTest_GotFocus(object sender, EventArgs e) {

 // Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ тСкстовоС ΠΏΠΎΠ»Π΅.

 // Ρ‚ΠΎ автоматичСски Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ SIP

 inputPanel1.Enabled = true;

}


private void txtTest_LostFocus(object sender, EventArgs e) {

 // ΠŸΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ фокуса сворачиваСм SIP

 inputPanel1.Enabled = false;

}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΈΠ½Π°Ρ‡Π΅ тСкстовоС ΠΏΠΎΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ фокус ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΎΡΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹. Но для этого Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству ΠΊΠ½ΠΎΠΏΠΊΠΈ TabIndex Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.