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

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

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

Рис. 21.15. Ассоциация ToolTip с элСмСнтом управлСния

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CarConfig ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ. На рис. 21.16 созданная подсказка ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² дСйствии.

Рис. 21.16. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ToolTip Π² дСйствии

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

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ "экзотичСскиС" элСмСнты управлСния, Π΄Π°Π²Π°ΠΉΡ‚Π΅ построим Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ TabControl (элСмСнт управлСния Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ). Π’Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ TabControl позволяСт сСлСктивно ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ страницы связанного содСрТимого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… "Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ°Ρ…". Π‘Π½Π°Ρ‡Π°Π»Π° создайтС Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows Forms с ΠΈΠΌΠ΅Π½Π΅ΠΌ ExoticControls ΠΈ помСняйтС имя исходной Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° MainWindow.

Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ TabControl Π² ΠΎΠΊΠ½ΠΎ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΊΠ½ΠΎ свойств, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Tab Pages ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ страниц (Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΎΠΊΠ½Π° свойств Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ). ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ инструмСнта. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅ΠΌ ΡˆΠ΅ΡΡ‚ΡŒ страниц ΠΈ установитС свойства Text ΠΈ Name страниц Π² соотвСтствии с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 21.17.

Рис. 21.17. ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹ΠΉ элСмСнт управлСния TabControl

ΠŸΡ€ΠΈ создании элСмСнта управлСния TabControl слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ каТдая страница прСдставляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ TabPage, содСрТащимся Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ страниц TabControl. Π‘ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ TabControl (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ элСмСнту графичСского интСрфСйса Π² Ρ„ΠΎΡ€ΠΌΠ΅) добавляСтся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Controls Ρ„ΠΎΡ€ΠΌΡ‹. РассмотритС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° InitializeComponent().

private void InitializeComponent() {

 β€¦

 // tabControlExoticControls

 //

 this.tabControlExoticControls.Controls.Add(this.pageTrackBars);

 this.tabControlExoticControls.Controls.Add(this.pagePanels);

 this.tabControlExoticControls.Controls.Add(this.pageUpDown);

 this.tabControlExoticControls.Controls.Add(this.pageErrorProvider);

 this.tabControlExpticControls.Controls.Add(this.pageTreeView);

 this.tabControlExoticControls.Controls.Add(this.pageWebBrowser);

 this.tabControlExoticControls.Location = new System.Drawing.Point(13, 13);

 this.tabControlExoticControls.Name = "tabControlExoticControls";

 this.tabControlExoticControls.SelectedIndex = 0;

 this.tabControlExoticControls.Size = new System.Drawing.Size(463, 274);

 this.tabControlExoticControls.TabIndex = 0;

 this.Controls.Add(this.tabControlExoticControls);

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, имСя Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Π½Π°Π±ΠΎΡ€ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ страницу для дСмонстрации ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… "экзотичСских" элСмСнтов управлСния. Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ€ΠΎΠ»ΡŒ TrackBar.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния TabControl обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ событий Selected, Selecting, Deselected ΠΈ Deselecting. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° трСбуСтся динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… страницы.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния TrackBar Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅Ρ‡Ρ‚ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° полосу ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим Ρ‚ΠΈΠΏΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ минимальноС ΠΈ максимальноС значСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, минимальноС ΠΈ максимальноС значСния приращСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств, описанных Π² Ρ‚Π°Π±Π». 21.6.

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

Бвойства ОписаниС LargeChange Число Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ измСняСтся ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° TrackBar, ΠΊΠΎΠ³Π΄Π° происходит событиС, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅Π΅ "большоС" ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ, ΠΊΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ находится Π² области Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиш β€ΉPageUpβ€Ί ΠΈ β€ΉPageDownβ€Ί) Maximum Minimum ВСрхняя ΠΈ ниТняя Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° TrackBar Orientation ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ для TrackBar. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния ΠΈΠ· пСрСчня Orientation (Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ориСнтация) SmallChange Число Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ измСняСтся ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TrackBar, ΠΊΠΎΠ³Π΄Π° происходит событиС, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅Π΅ "ΠΌΠ°Π»ΠΎΠ΅" ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиш со стрСлками) TickFrequency ВлияСт Π½Π° число Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ. НапримСр, для TrackBar c Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠΌ 100 Π½Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ всС 100 Π΄Π΅Π»Π΅Π½ΠΈΠΉ для элСмСнта управлСния Π΄Π»ΠΈΠ½ΠΎΠΉ 5 см. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство TickFrequency Ρ€Π°Π²Π½Ρ‹ΠΌ 5, для TrackBar Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 20 Π΄Π΅Π»Π΅Π½ΠΈΠΉ (ΠΎΠ΄Π½ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 5 Π΅Π΄ΠΈΠ½ΠΈΡ†) TickStyle Π—Π°Π΄Π°Π΅Ρ‚ внСшний Π²ΠΈΠ΄ элСмСнта управлСния TrackBar. ΠžΡ‚ этого значСния (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ значСниям пСрСчня TickStyle) зависит ΠΈ Ρ‚ΠΎ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ дСлСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ сам ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ Value Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ устанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π°Π΄Π°ΡŽΡ‰Π΅Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° TrackBar. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого свойства ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, содСрТащССся Π² TrackBar, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ элСмСнта TabControl, размСстив Π½Π° Π½Π΅ΠΉ Ρ‚Ρ€ΠΈ элСмСнта TrackBar, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π΅Ρ€Ρ…Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ€Π°Π²Π½ΠΎ 255, Π° Π½ΠΈΠΆΠ½Π΅Π΅ – Π½ΡƒΠ»ΡŽ, ΠŸΡ€ΠΈ смСщСнии ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ любого ΠΈΠ· ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ событиС Scroll ΠΈ динамичСски создаСт Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ System.Drawing.Color Π½Π° основС Π½ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ². Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Color Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ элСмСнт PictureBox (с ΠΈΠΌΠ΅Π½Π΅ΠΌ colorBox) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ RGB-значСния Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚ΠΈΠΏΠ° Label (с ΠΈΠΌΠ΅Π½Π΅ΠΌ lblCurrColor). На рис. 21.18 пСрвая страница ΠΎΠΊΠ½Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Рис. 21.18. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° TrackBar

Π‘Π½Π°Ρ‡Π°Π»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΊΠ½ΠΎ проСктирования Ρ„ΠΎΡ€ΠΌΡ‹, размСститС Ρ‚Ρ€ΠΈ элСмСнта управлСния TrackBar Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΈ Π½Π°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ подходящиС ΠΈΠΌΠ΅Π½Π° (redTrackBar, greenTrackBar ΠΈ blueTrackBar). Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ событиС Scroll для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ TrackBar. Π’ΠΎΡ‚ подходящий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ InitializeComponent() для blueTrackBar (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… полос ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Π΄Π°Π½Π½ΠΎΠΌΡƒ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события Scroll).

private void InitializeComponent() {

 β€¦

 //

 // blueTrackBar

 //

 this.blueTrackBar.Maximum = 255;

 this.blueTrackBar.Name = "blueTrackBar";

 this.blueTrackBar.TickFrequency = 5;

 this.blueTRackBar.TickStyle = System.Windows.Forms.TickStΡƒle.TopLeft;

 this.blueTrackBar.Scroll += new System.EventHandler(this.blueTrackBar.Scroll);

 β€¦

}

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для TrackBar являСтся 0, поэтому Π΅Π³ΠΎ явно ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий Scroll для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ TrackBar выполняСтся Π²Ρ‹Π·ΠΎΠ² Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ UpdateColor(), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°ΠΌ Π΅Ρ‰Π΅ прСдстоит Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ.

private void blueTrackBar_Scroll(object sender, EventArgs e) {

 UpdateColor();

}

Ѐункция UpdateColor() ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… Π³Π»Π°Π²Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ TrackBar ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ для вычислСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Color с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Color.FromArgb(). ИмСя Π½ΠΎΠ²Ρ‹ΠΉ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚, слСдуСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Π»Π΅Π½-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PictureBox (с ΠΈΠΌΠ΅Π½Π΅ΠΌ colorBox), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°. НаконСц, UpdateColor() ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ значСния ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ² Π² строкС, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠΉ Π² элСмСнтС Label(lblCurrColor), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

private void UpdateColor() {

 // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π½Π° основС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ².

 Color с = Color.FromArgb(redTrackBar.Value, greenTrackBar.Value, blueTrackBar.Value);

 // ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° Π² PictureBox.

 colorBox.BackColor = c;

 // Установка тСкста для надписи.

 lblCurrColor.Text = string.Format("Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ значСния: ({0}, {1}, (2})", redTrackBar.Value, greenTrackBar.Value, blueTrackBar.Value);

}

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠΌ являСтся установка Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° ΠΏΡ€ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ появлСнии Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

public MainWindow() {

 InitializeComponent();

 CenterToScreen();

 // Установка исходного полоТСния ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ².

 redTrackBar.Value = 100;

 greenTrackBar.Value = 255;

 blueTrackBar.Value = 0;

 UpdateColor();

}

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

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, элСмСнт управлСния GroupBox ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ логичСски ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ряд элСмСнтов управлСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ) ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ взаимосвязи. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния Panel Π² этом смысля являСтся Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΊ GroupBox. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния Panel Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ родствСнных элСмСнтов управлСния Π² логичСскиС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Одним ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ Panel получаСтся ΠΈΠ· класса ScrollableControl, поэтому Panel ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, Ρ‡Π΅Π³ΠΎ Π½Π΅Ρ‚ Ρƒ GroupBox.