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

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

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли стилусом Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовоС ΠΏΠΎΠ»Π΅, Ρ‚ΠΎ автоматичСски Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°. Если Π½Π° появившСйся ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Tab ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с надписью ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°, Ρ‚ΠΎ панСль Π²Π²ΠΎΠ΄Π° автоматичСски свСрнСтся.


Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ InputPanel ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ событиС EnabledChanged, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²ΠΎΠ΄Π° Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ тСкстовоС ΠΏΠΎΠ»Π΅ Π² ниТнюю Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹. БСйчас Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ событиС EnabledChanged ΠΈ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²ΠΎΠ΄Π° тСкстовоС ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ввСсти свои Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этого события ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.24.

Листинг 3.24

private void inputPanel1_EnabledChanged(object sender,EventArgs e) {

 // ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ состояниС ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²ΠΎΠ΄Π°

 // Бвойство Bounds Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ SIP

 if (inputPanel1.Enabled == true)

  this.txtJump.Top = 200 β€” inputPanel1.Bounds.Height;

 else

  this.txtJump.Top = 200;

}

На рис. 3.15 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° тСстового прилоТСния.

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

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния DataGrid

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния DataGrid позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠ°ΠΊ это сдСлано Π² элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ MS Excel. Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты управлСния, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ€Π΅Π·Π°Π½Π½Ρ‹Π΅ возмоТности ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсиСй .NET Framework. НапримСр, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° свойства DataMember.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния DataGrid ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связан с источниками Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойства DataSource. Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌ элСмСнтом. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ XML-Ρ„Π°ΠΉΠ», содСрТащий Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±Ρ‹Π» использован Ρ„Π°ΠΉΠ» artists.xml, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… извСстных артистов ΡˆΠΎΡƒ-бизнСса. Π€Π°ΠΉΠ» содСрТит записи ΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ, Π΄Π°Ρ‚Π΅ роТдСния ΠΈ адрСсС проТивания. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ элСмСнт DataGrid ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ имя grdArtists. Π’ листингС 3.25 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события Form1_Load.

Листинг 3.25

private void Form1_Load(object sender, EventArgs e) {

 Cursor.Current = Cursors.WaitCursor;

 try {

  // Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ DataSet

  DataSet ds = new DataSet();

  ds.ReadXml(@"\Program Files\DataGrid_CS\artists.xml");

  grdArtists.DataSource = ds.Tables[0];

 } catch (Exception) {

  MessageBox.Show("НС ΠΌΠΎΠ³Ρƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² DataGrid!", this.Text);

 }


 // УстанавливаСм стили

 DataGridTableStyle ts = new DataGridTableStyle();

 ts.MappingName = "Order";


 DataGridColumnStyle artistDate = new DataGridTextBoxColumn();

 artistDate.MappingName = "BirthDate";

 artistDate.HeaderText = "Π”Π°Ρ‚Π° роТдСния";

 ts.GridColumnStyles.Add(artistDate);


 DataGridColumnStyle artistName = new DataGridTextBoxColumn();

 artistName.MappingName = "ArtistName";

 artistName.HeaderText = "Артист";

 artistName.Width = this.Width - artistDate.Width - 35;

 ts.GridColumnStyles.Add(artistName);


 grdArtists.TableStyles.Add(ts);


 Cursor.Current = Cursors.Default;

}

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ· XML-Ρ„Π°ΠΉΠ»Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, относящиСся ΠΊ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ артиста ΠΈ Π΄Π°Ρ‚Π΅ Π΅Π³ΠΎ роТдСния. ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ информация игнорируСтся. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ прилоТСния Π² элСмСнт DataGrid Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. На рис. 3.16 ΠΏΠΎΠΊΠ°Π·Π°Π½ внСшний Π²ΠΈΠ΄ прилоТСния.

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

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ Β«Using the DataGrid Control in Pocket PC ApplicationsΒ», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² справочной систСмС MSDN. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ возмоТности Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния Splitter появился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² .NET Compact Framework 2.0. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ. Π­Ρ‚ΠΎΡ‚ элСмСнт Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… элСмСнтов управлСния Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Splitter ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с элСмСнтами управлСния, содСрТащими Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Π‘Ρ‚ΠΎΠΈΡ‚ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. На Ρ„ΠΎΡ€ΠΌΠ΅ слСдуСт Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ графичСскоС ΠΏΠΎΠ»Π΅ PictureBox ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ свойству Dock Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Top. Π—Π°Ρ‚Π΅ΠΌ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Splitter ΠΈ Π΅Π³ΠΎ свойству Dock Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Top. Π’Π°ΠΊΠΆΠ΅ слСдуСт Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ тСкстовоС ΠΏΠΎΠ»Π΅ TextBox. Π•Π³ΠΎ свойству Multiline Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Π° свойству Dock β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Fill. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ прилоТСния ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 3.17.

Рис. 3.17. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ элСмСнта Splitter Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

Π”Π°ΠΆΠ΅ Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠΉ строчки написанного ΠΊΠΎΠ΄Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ. Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ тСкстового поля для Π²Π²ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ достаточно Π½Π°ΠΆΠ°Ρ‚ΡŒ стилусом Π½Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния MonthCalendar появился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² послСднСй вСрсии .NET Compact Framework 2.0. Π”Π°Π½Π½Ρ‹ΠΉ элСмСнт позволяСт Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π΄Π°Ρ‚Ρƒ.

Для создания тСстового прилоТСния Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнты MonthCalendar ΠΈ Label. ΠœΠ΅Ρ‚ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя lblSelectDate, Π° для свойства Text Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Выбранная Π΄Π°Ρ‚Π°. Π—Π°Ρ‚Π΅ΠΌ слСдуСт Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° элСмСнтС monthCalendar1, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события DateChanged. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.26.

Листинг 3.26

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) {

 lblSelectDate.Text =

  "Выбранная Π΄Π°Ρ‚Π°: " + monthCalendar1.SelectionStart.ToShortDateString();

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈΠ· мСсячного калСндаря. Выбранная Π΄Π°Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² надписи lblSelectDate, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.18.

Рис. 3.18. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π΄Π°Ρ‚Ρƒ ΠΈΠ· мСсячного калСндаря

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния DateTimePicker Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π½ΠΎΠ²Ρ‹ΠΌ элСмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Π² .NET Compact Framework 2.0. Он позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Ρ‚Ρƒ, Π½ΠΎ ΠΈ врСмя.

На Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт DateTimePicker ΠΈ Π΄Π²Π΅ тСкстовыС ΠΌΠ΅Ρ‚ΠΊΠΈ Label, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π΄Π°Ρ‚Π° ΠΈ врСмя. Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° элСмСнтС DateTimePicker, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события ValueChanged. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 3.27.

Листинг 3.27

private void dateTimePicker1_ValueChanged(object sender, EventArgs e) {

 lblDate.Text = "Π”Π°Ρ‚Π°: " + dateTimePicker1.Value.ToShortDateString();

 lblTime.Text = "ВрСмя: " + dateTimePicker1.Value.ToShortTimeString();

}

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ прилоТСния ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 3.19.

Рис. 3.19. Π’Ρ‹Π±ΠΎΡ€ Π΄Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ элСмСнта DateTimePicker

Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ MSDN Π΅ΡΡ‚ΡŒ нСбольшая ΡΡ‚Π°Ρ‚ΡŒΡ Β«How to: Use the DateTimePicker Class in the .NET Compact FrameworkΒ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ приводится нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования этого элСмСнта. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта появилась ΠΈ Π² смартфонах ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Mobile 5.0. Но Π² этом случаС внСшний Π²ΠΈΠ΄ элСмСнта Π±ΡƒΠ΄Π΅Ρ‚ нСсколько ΠΈΠ½Ρ‹ΠΌ.

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

Новый элСмСнт управлСния DocumentList, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Π² .NET Compact Framework 2.0, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ SaveFileDialog ΠΈ OpenFileDialog, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Помимо этого элСмСнт DocumentList ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ навСрняка понравятся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Он позволяСт ΠΎΡ‡Π΅Π½ΡŒ просто Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ основныС Π·Π°Π΄Π°Ρ‡ΠΈ манипулирования Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относятся ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого элСмСнта Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π΄Π°Ρ‚Π΅ создания, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт Π΄Π°ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ устройство ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ инфракрасной связи.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ DocumentList Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΠ°ΠΏΠΊΠΈ My Documents, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ DocumentList являСтся классом ΠΈΠ· пространства Microsoft.WindowsCE.Forms ΠΈ Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии .NET Framework. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ смысл ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Π°Π½Π½Ρ‹ΠΌ элСмСнтом.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСстового прилоТСния сначала потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ элСмСнт DocumentList. Для свойства Name Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ DocListFile, свойство Dock Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Top, свойству Height присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 160, Π° для свойства SelectedDirectory задаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ My Documents.