如何在PictureBox控件上显示滚动条?

时间:2011-01-13 04:22:33

标签: vb.net winforms scrollbar picturebox autoscroll

有时候,我有一个图片盒可以说是100x100。但它显示的图像实际上是100x400。

我不想增加图片框本身的大小。相反,我想创建一个垂直滚动条(如果需要,还可以创建水平滚动条)。

我在工具箱中找不到滚动条,所以我想我必须对其进行编码。但是,怎么样? 而且我仍然想知道我是否没有犯错并且没有看到工具箱中的滚动条。我道歉:(

3 个答案:

答案 0 :(得分:19)

我认为你可以添加单独的滚动条控件,并将Scroll事件与PictureBox中的图片的偏移量同步,但这听起来像是实际的工作。有更好的方法。

  1. 在表单中添加Panel控件,并将其AutoScroll property设置为“True”。这将导致控件在其包含时自动显示滚动条位于其当前可见边界之外的内容。 .NET Framework将为您完成所有内容,无需编写任何代码。

  2. PictureBox控件拖放到您刚刚添加的Panel控件中。 Panel控件将检测到其中一个由于AutoScroll属性,它的子控件大于其可见区域并显示滚动条。当用户移动滚动条时,PictureBox中可见的图像部分将自动调整。魔法。

  3. (你必须使用Panel控件作为容器的原因是因为PictureBox不直接从ScrollableControl基类继承,这就是提供AutoScroll的基类属性。)

答案 1 :(得分:3)

我试过这个并且效果很好。但我注意到,如果图片框停靠在面板中,图片框会自动设置为父面板的大小,并且不能设置得更大(至少不能以任何方式找到)。这违背了该技术的目的。所以 - 将图片框放在面板上,但不要停靠它,它将完美地工作。

答案 2 :(得分:2)

图片框上没有自动滚动条,但您可以将VScrollBar(和HScrollBar)控件添加到表单,并在每次触发Scroll事件时通过重新绘制不同的偏移量来手动处理图像。 / p>