How can I get scrollbars on Picturebox
I have PictureBox picture
.
I use:
picture.Size = bmp.Size;
picture.Image = bmp;
Let's say there are two integers maxWidth
and maxHeigth
.
I want to add vertical/horizontal scrollbar to picture
when its size exceeds maxWidth
and/or maxHeight
. How can I do that?
Solution 1:
You can easily do it with a Panel
Control
Insert a panel to your form, say panel1 and set
panel1.AutoScroll = true;
insert a PictureBox
to the Panel
, say picture and set
picture.SizeMode = PictureBoxSizeMode.AutoSize;
and set the Image
picture.Image = bmp;
hope this helps
Solution 2:
Here's a project where a guy built an ImagePanel
user control that you can drop onto a form; it gives you scrollbars and zoom capability.
http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx
Solution 3:
I got it to work by also putting a picturebox inside a panel control, I set the Panel's AutoScroll property to true, but I also set the Panel's Autosize property to True, and the Panel's Dock property to Fill (that way when the user resizes the form - so will the Panel). For the Picturebox, I set it's Dock property to None, and the SizeMode to Autosize (so it resizes also when the Panel and form Resizes. It worked like a charm, the Picturebox has Scrollbars and when the user resizes the form - everything is still placed correctly!
Solution 4:
It works to me.
PictureBox picture = new PictureBox();
picture.Image=Image.FromFile("image.bmp");
picture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
Panel panel = new Panel();
panel.Size=new Size(800,600);
panel.Location=new Point(0,0);
panel.AutoScroll=true;
panel.Controls.Add(picture);
this.Controls.Add(panel);