Csharp/CSharp Tutorial/GUI Windows Forms/ScrollBar

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

ScrollBar Large/Small Range

<source lang="csharp">using System; using System.Drawing; using System.Windows.Forms; public class ScrollBarsRangeLargeSmall : Form {

 HScrollBar hbar;
 VScrollBar vbar;
 public ScrollBarsRangeLargeSmall()
 {
   Size = new Size(480,500);
   hbar = new HScrollBar();
   hbar.Parent = this;
   hbar.Location = new Point(Left, Bottom + 25);
   hbar.Size = new Size(Width, 25);
   hbar.Minimum = 25;
   hbar.Maximum = 400;
   hbar.SmallChange = 10;
   hbar.LargeChange = 100;
   hbar.Value = Width - hbar.LargeChange;
   hbar.ValueChanged += new EventHandler(hbar_OnValueChanged);
   vbar = new VScrollBar();
   vbar.Parent = this;
   vbar.Location = new Point(Right + 25, Top);
   vbar.Size = new Size(25, Height);
   vbar.Minimum = 25;
   vbar.Maximum = 400;
   vbar.SmallChange = 10;
   vbar.LargeChange = 100;
   vbar.Value = Height - vbar.LargeChange;
   vbar.ValueChanged += new EventHandler(vbar_OnValueChanged);
 } 
 private void hbar_OnValueChanged(object sender, EventArgs e)
 {
   Console.WriteLine(hbar.Value);
 }
 private void vbar_OnValueChanged(object sender, EventArgs e)
 {
   Console.WriteLine(vbar.Value);
 }
 static void Main() 
 {
   Application.Run(new ScrollBarsRangeLargeSmall());
 }

}</source>

ScrollBar Value changed event handler

<source lang="csharp">using System; using System.Drawing; using System.Windows.Forms; public class ScrollBarsControlPictureBox : Form {

 Panel pnl;
 PictureBox pb;
 HScrollBar hbar;
 VScrollBar vbar;
 Image img;
 public ScrollBarsControlPictureBox()
 {
   Size = new Size(480,300);
   img = Image.FromFile("YourFile.gif");
   pnl = new Panel();
   pnl.Parent = this;
   pnl.Size = new Size(400,200);
   pnl.Location = new Point(10,10);
   pnl.BorderStyle = BorderStyle.FixedSingle;
   pb = new PictureBox();
   pb.Parent = pnl;
   pb.Size = new Size(img.Size.Width, img.Size.Height);
   pb.Location = new Point((pnl.Size.Width / 2) - (pb.Size.Width / 2),
               (pnl.Size.Height / 2) - (pb.Size.Height / 2));
   pb.SizeMode = PictureBoxSizeMode.CenterImage;
   pb.Image = img;
   hbar = new HScrollBar();
   hbar.Parent = this;
   hbar.Location = new Point(pnl.Left, pnl.Bottom + 25);
   hbar.Size = new Size(pnl.Width, 25);
   hbar.Minimum = 0;
   hbar.Maximum = 100;
   hbar.SmallChange = 1;
   hbar.LargeChange = 10;
   hbar.Value = (hbar.Maximum - hbar.Minimum) / 2;
   hbar.ValueChanged += new EventHandler(hbar_OnValueChanged);
   vbar = new VScrollBar();
   vbar.Parent = this;
   vbar.Location = new Point(pnl.Right + 25, pnl.Top);
   vbar.Size = new Size(25, pnl.Height);
   vbar.Minimum = 0;
   vbar.Maximum = 100;
   vbar.SmallChange = 1;
   vbar.LargeChange = 10;
   vbar.Value = (vbar.Maximum - vbar.Minimum) / 2;
   vbar.ValueChanged += new EventHandler(vbar_OnValueChanged);
 }
 private void hbar_OnValueChanged(object sender, EventArgs e)
 {
   pb.Location = new Point((pnl.Size.Width - img.Size.Width) * (hbar.Value) / (hbar.Maximum - hbar.LargeChange + 1), pb.Top);
 }
 private void vbar_OnValueChanged(object sender, EventArgs e)
 {
   pb.Location = new Point(pb.Left, (pnl.Size.Height - img.Size.Height) * vbar.Value / (vbar.Maximum - vbar.LargeChange + 1));
 }
 static void Main() 
 {
   Application.Run(new ScrollBarsControlPictureBox());
 }

}</source>

Use ScrollBar to control Picture

<source lang="csharp">using System; using System.Drawing; using System.Windows.Forms; public class ScrollBarsControlPictureBox : Form {

 Panel pnl;
 PictureBox pb;
 HScrollBar hbar;
 VScrollBar vbar;
 Image img;
 public ScrollBarsControlPictureBox()
 {
   Size = new Size(480,300);
   img = Image.FromFile("YourFile.gif");
   pnl = new Panel();
   pnl.Parent = this;
   pnl.Size = new Size(400,200);
   pnl.Location = new Point(10,10);
   pnl.BorderStyle = BorderStyle.FixedSingle;
   pb = new PictureBox();
   pb.Parent = pnl;
   pb.Size = new Size(img.Size.Width, img.Size.Height);
   pb.Location = new Point((pnl.Size.Width / 2) - (pb.Size.Width / 2),
               (pnl.Size.Height / 2) - (pb.Size.Height / 2));
   pb.SizeMode = PictureBoxSizeMode.CenterImage;
   pb.Image = img;
   hbar = new HScrollBar();
   hbar.Parent = this;
   hbar.Location = new Point(pnl.Left, pnl.Bottom + 25);
   hbar.Size = new Size(pnl.Width, 25);
   hbar.Minimum = 0;
   hbar.Maximum = 100;
   hbar.SmallChange = 1;
   hbar.LargeChange = 10;
   hbar.Value = (hbar.Maximum - hbar.Minimum) / 2;
   hbar.ValueChanged += new EventHandler(hbar_OnValueChanged);
   vbar = new VScrollBar();
   vbar.Parent = this;
   vbar.Location = new Point(pnl.Right + 25, pnl.Top);
   vbar.Size = new Size(25, pnl.Height);
   vbar.Minimum = 0;
   vbar.Maximum = 100;
   vbar.SmallChange = 1;
   vbar.LargeChange = 10;
   vbar.Value = (vbar.Maximum - vbar.Minimum) / 2;
   vbar.ValueChanged += new EventHandler(vbar_OnValueChanged);
 }
 private void hbar_OnValueChanged(object sender, EventArgs e)
 {
   pb.Location = new Point((pnl.Size.Width - img.Size.Width) * (hbar.Value) / (hbar.Maximum - hbar.LargeChange + 1), pb.Top);
 }
 private void vbar_OnValueChanged(object sender, EventArgs e)
 {
   pb.Location = new Point(pb.Left, (pnl.Size.Height - img.Size.Height) * vbar.Value / (vbar.Maximum - vbar.LargeChange + 1));
 }
 static void Main() 
 {
   Application.Run(new ScrollBarsControlPictureBox());
 }

}</source>