How can I get scrollbars on Picturebox
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);
Comments
-
Ichibann about 4 years
I have
PictureBox picture
.I use:
picture.Size = bmp.Size; picture.Image = bmp;
Let's say there are two integers
maxWidth
andmaxHeigth
.
I want to add vertical/horizontal scrollbar topicture
when its size exceedsmaxWidth
and/ormaxHeight
. How can I do that? -
James King over 13 yearsThis is a nice answer because if you set the panel to be anchored to the form, the panel will expand as the form expands, showing and hiding the scrollbars as necessary.
-
CristisS about 11 yearsI would add to binil's answer, the following: the picturebox has to have the anchor not set to right or bottom. Setting the anchor to right prevents the display of the horizontal scrollbar. Setting it to bottom prevents the display of the vertical scrollbar.
-
morpheus about 9 yearsMike, verify that pictureBox dock should be set to None. I had mine set to Fill and did not see any scrollbars but when I changed it to none the scrollbars appeared.
-
Martina about 9 yearsI've the same problem, the pictureBox dock is set to None but If I set the SizeMode to AutoSize no scrollbars are shown
-
kory almost 8 yearsYep same issue here, you cannot set SizeMode to AutoSize in the later versions. Setting it to Normal works as expected.
-
Daniel Katz almost 8 yearsI also set the panel1's AutoSize to false because it became as big as my screen.
-
Angelo Bernardi over 4 yearsResuming ('cause i've done a lot of experiments), and this worked for me: Panel: Autosrcoll: true, Dock: fill Picturebox: Dock: none; Anchor: Top, Left; SizeMode: AutoSize
-
RickC about 4 yearsThanks, the only way it worked for me (VS2017) was PictureBox: Dock = None and SizeMode = AutoSize. Thanks again!