如何在Picturebox上获取滚动条

时间:2011-01-17 04:58:37

标签: c# winforms scroll scrollbar picturebox

我有PictureBox picture

我用:

picture.Size = bmp.Size;
picture.Image = bmp;

假设有两个整数maxWidthmaxHeigth 我希望在其大小超过picture和/或maxWidth时将垂直/水平滚动条添加到maxHeight。我怎么能这样做?

5 个答案:

答案 0 :(得分:127)

您可以使用Panel控制

轻松完成此操作

将面板插入表单,例如panel1并设置

panel1.AutoScroll = true;

PictureBox插入Panel,比如图片并设置

picture.SizeMode = PictureBoxSizeMode.AutoSize;

并设置图像

picture.Image = bmp;

希望这会有所帮助

答案 1 :(得分:4)

这是一个项目,其中一个人建立了ImagePanel用户控件,您可以将其放到表单上;它为您提供滚动条和缩放功能。

http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx

答案 2 :(得分:1)

我通过在面板控件中放置一个图片框来实现它,我将Panel的AutoScroll属性设置为true,但我还将Panel的Autosize属性设置为True,并将Panel的Dock属性设置为Fill(当时用户调整表单的大小 - Panel也是如此。对于Picturebox,我将它的Dock属性设置为None,将SizeMode设置为Autosize(因此当Panel和form Resizes时它也会调整大小。它像魅力一样工作,Picturebox有Scrollbars,当用户调整表单大小时 - 一切都还是正确放置!

答案 3 :(得分:0)

另一个建议是将图片框放在FlowlayoutPanel中。

将FlowlayoutPanel的自动滚动设置为true并将图片大小模式设置为正常

使用FlowlayoutPanel可确保图像在面板中始终为0,0

答案 4 :(得分:0)

对我有用。

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);