我有一个面板,上面有一个 picturebox。当 picturebox 的内容过大时,我想要滚动条。我已经将面板的 autoscroll 属性设置为 true。但是当 picturebox 的内容大于面板/picturebox 的高度时,没有出现滚动条。
我的面板和 picturebox 都被固定在顶部、左侧、底部和右侧。
我的面板和 picturebox 都被固定在顶部、左侧、底部和右侧。
您需要将 SizeMode
属性设置为 AutoSize
,这将导致 PictureBox 自动调整大小以适应图片的大小。
我认为您应该取消锚定并仅锚定到左上角。其余部分由面板自动处理。否则,PictureBox 可能会遵循锚定,无法将自身调整为大于其包含的面板的大小 - 这将再次导致没有滚动条。
来自MSDN:
目前在 Windows Forms 中存在一个限制,当同时启用
RightToLeft
并将AutoScroll
设置为True
时,阻止所有派生自ScrollableControl
的类正常工作。例如,假设您在表单上放置了一个诸如Panel
或从Panel
派生的容器类(例如FlowLayoutPanel
或TableLayoutPanel
)的控件。如果您将容器的AutoScroll
设置为True
,然后将其中一个或多个控件的Anchor
属性设置为Right
,则不会出现任何滚动条。派生自ScrollableControl
的类会像将AutoScroll
设置为False
一样运行。
RightToLeft
和AutoScroll
的情况...但我不认为问题描述了这样的情况? - Asherah图片框不应该被固定在底部和右侧。相反,应将其调整为适合显示内容的大小。
对我而言,以下代码有助于添加滚动条:
Panel2.Controls.Clear();
Panel2.AutoScroll = false;
Panel2.VerticalScroll.Enabled = true;
Panel2.VerticalScroll.Visible = true;
Panel2.AutoScroll = true;
将面板的边框样式更改为 Fixed Single,然后将面板的自动滚动属性设置为 True。