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?
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
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
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!
Another suggestion is to put the picturebox inside a FlowlayoutPanel .
Set the Auto scroll of the FlowlayoutPanel to true and set the picture size mode to normal
Using a FlowlayoutPanel makes sure the image is always at 0,0 in the panel