有时,我有一个图片框,可以说是 100x100。但它将显示的图像实际上是 100x400。
我不想增加图片框本身的大小。相反,我想创建一个垂直滚动条(如果需要,也可以是水平滚动条)。
我在工具箱中找不到滚动条,所以我想我必须对其进行编码。但是,怎么做?而且我还在想是不是我没打错,没看到工具箱里的滚动条。那么我很抱歉:(
有时,我有一个图片框,可以说是 100x100。但它将显示的图像实际上是 100x400。
我不想增加图片框本身的大小。相反,我想创建一个垂直滚动条(如果需要,也可以是水平滚动条)。
我在工具箱中找不到滚动条,所以我想我必须对其进行编码。但是,怎么做?而且我还在想是不是我没打错,没看到工具箱里的滚动条。那么我很抱歉:(
我想您可以添加单独的滚动条控件并将它们的Scroll
事件与PictureBox
绘制图片的偏移量同步,但这听起来像是实际工作。有更好的方法。
将Panel
控件添加到表单,并将其AutoScroll
属性设置为“True”。这将导致控件在其包含位于其当前可见范围之外的内容时自动显示滚动条。.NET Framework 将在幕后为您处理一切,无需您编写任何代码。
PictureBox
将控件拖放Panel
到刚刚添加的控件中。然后,Panel
控件将检测到其子控件之一大于其可见区域并显示滚动条,这要归功于该AutoScroll
属性。当用户移动滚动条时,图像中PictureBox
可见的部分将自动调整。魔法。
(您必须将Panel
控件用作容器的原因是因为PictureBox
它不直接从ScrollableControl
提供属性的基类继承AutoScroll
。)
我试过了,效果很好。但是我注意到如果图片框停靠在面板中,图片框会自动设置为父面板的大小,并且不能设置为更大(至少我找不到任何方式)。这违背了该技术的目的。所以——把图片框放在面板上,但不要停靠它,它会完美地工作。
图片框上没有自动滚动条,但您可以将 VScrollBar(和 HScrollBar)控件添加到窗体,并通过在每次触发 Scroll 事件时以不同的偏移量重新绘制图像来手动处理图像滚动。