Π ΠΈΡ. 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.