TrackBar: SmallChange, LargeChange, Minimum, Maximum : TrackBar « GUI Windows Forms « C# / CSharp Tutorial






using System;
using System.Drawing;
using System.Windows.Forms;
   
class ColorTrackBar: Form
{
     Panel      panel;
     Label[]    alabelName  = new Label[3];
     Label[]    alabelValue = new Label[3];
     TrackBar[] atrackbar   = new TrackBar[3];
   
     public static void Main()
     {
          Application.Run(new ColorTrackBar());
     }
     public ColorTrackBar()
     {
          Color[] acolor = { Color.Red, Color.Green, Color.Blue };
   
          panel = new Panel();
          panel.Parent = this;
          panel.Location = new Point(0, 0);
          panel.BackColor = Color.White;
   
          for (int i = 0; i < 3; i++)
          {
               alabelName[i] = new Label();
               alabelName[i].Parent = panel;
               alabelName[i].ForeColor = acolor[i];
               alabelName[i].Text = "&" + acolor[i].ToKnownColor();
               alabelName[i].TextAlign = ContentAlignment.MiddleCenter;
   
               atrackbar[i] = new TrackBar();
               atrackbar[i].Parent = panel;
               atrackbar[i].Orientation = Orientation.Vertical;
               atrackbar[i].BackColor = acolor[i];
               atrackbar[i].SmallChange = 1;
               atrackbar[i].LargeChange = 16;
               atrackbar[i].Minimum = 0;
               atrackbar[i].Maximum = 255;
               atrackbar[i].TickFrequency = 16;
               atrackbar[i].ValueChanged += new EventHandler(TrackBarOnValueChanged);
   
               alabelValue[i] = new Label();
               alabelValue[i].Parent = panel;
               alabelValue[i].TextAlign = ContentAlignment.MiddleCenter;
          }
          Color color = BackColor;
          atrackbar[0].Value = color.R; // Generates ValueChanged event
          atrackbar[1].Value = color.G;
          atrackbar[2].Value = color.B;
   
          OnResize(EventArgs.Empty);
     }
     protected override void OnResize(EventArgs ea)
     {
          base.OnResize(ea);
   
          int cx = ClientSize.Width;
          int cy = ClientSize.Height;
          int cyFont = Font.Height;
   
          panel.Size = new Size(cx / 2, cy);
   
          for (int i = 0; i < 3; i++)
          {
               alabelName[i].Location = new Point(i * cx / 6, cyFont / 2);
               alabelName[i].Size = new Size(cx / 6, cyFont);
   
               atrackbar[i].Height = cy - 4 * cyFont;
               atrackbar[i].Location = 
                    new Point((1 + 2 * i) * cx / 12 - atrackbar[i].Width / 2,
                              2 * cyFont);
   
               alabelValue[i].Location = new Point(i * cx / 6,
                                                   cy - 3 * cyFont / 2);
               alabelValue[i].Size = new Size(cx / 6, cyFont);
          }
     }
     void TrackBarOnValueChanged(object obj, EventArgs ea)
     {
          for (int i = 0; i < 3; i++)
               if((TrackBar) obj == atrackbar[i])
                    alabelValue[i].Text = atrackbar[i].Value.ToString();
   
          BackColor = Color.FromArgb(atrackbar[0].Value, 
                                     atrackbar[1].Value,
                                     atrackbar[2].Value);
     }
}








23.21.TrackBar
23.21.1.TrackBar on value changed event handlerTrackBar on value changed event handler
23.21.2.TractBar Large/Small rangeTractBar Large/Small range
23.21.3.Color TrackerColor Tracker
23.21.4.TrackBar: SmallChange, LargeChange, Minimum, Maximum