How can I get scrollbars on Picturebox

78,067

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);
Share:
78,067
Ichibann
Author by

Ichibann

I'm a student :)

Updated on May 13, 2020

Comments

  • Ichibann
    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 and maxHeigth.
    I want to add vertical/horizontal scrollbar to picture when its size exceeds maxWidth and/or maxHeight. How can I do that?

  • James King
    James King over 13 years
    This 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
    CristisS about 11 years
    I 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
    morpheus about 9 years
    Mike, 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
    Martina about 9 years
    I've the same problem, the pictureBox dock is set to None but If I set the SizeMode to AutoSize no scrollbars are shown
  • kory
    kory almost 8 years
    Yep same issue here, you cannot set SizeMode to AutoSize in the later versions. Setting it to Normal works as expected.
  • Daniel Katz
    Daniel Katz almost 8 years
    I also set the panel1's AutoSize to false because it became as big as my screen.
  • Angelo Bernardi
    Angelo Bernardi over 4 years
    Resuming ('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
    RickC about 4 years
    Thanks, the only way it worked for me (VS2017) was PictureBox: Dock = None and SizeMode = AutoSize. Thanks again!