C#Panel autoscroll不起作用
我有一个带有图片框的面板。 当图片框的内容太大时我想要滚动条。 我在面板上将autoscroll设置为true。 但是当图片框的内容较大时,面板/图片框的高度不会显示滚动条。
我的面板固定在顶部,左侧,底部,右侧。 图片框也固定在顶部,左侧,底部,右侧。
您必须将SizeMode
属性设置为AutoSize
,这会导致PictureBox自动resize为图片的大小。
而且我认为你应该放下锚点并且仅锚定到左上角。 其余部分由专家组自动处理。 因为否则PictureBox可能会尊重锚点,无法自己resize而不是它包含的面板 – 导致没有再次滚动条。
来自MSDN :
目前,Windows窗体中存在一个限制,当启用
RightToLeft
并将AutoScroll
设置为True
时,它会阻止从ScrollableControl
派生的所有类正常运行。 例如,假设您在窗体上放置一个控件,如Panel
– 或从Panel
派生的容器类(如FlowLayoutPanel
或TableLayoutPanel
)。 如果将容器上的AutoScroll
设置为True
,然后将容器内部的一个或多个控件上的Anchor
属性设置为Right
,则不会出现任何滚动条。 从ScrollableControl
派生的类就像AutoScroll
设置为False
。
图片框不应该在底部和右边锚定。 而是将其大小调整为要显示的内容。
对于我来说,下面的代码有助于添加滚动条:
Panel2.Controls.Clear(); Panel2.AutoScroll = false; Panel2.VerticalScroll.Enabled = true; Panel2.VerticalScroll.Visible = true; Panel2.AutoScroll = true;
将Panel的边框样式更改为Fixed Single,然后将Panel的Auto Scroll Property更改为True。