C#Panel autoscroll不起作用

我有一个带有图片框的面板。 当图片框的内容太大时我想要滚动条。 我在面板上将autoscroll设置为true。 但是当图片框的内容较大时,面板/图片框的高度不会显示滚动条。

我的面板固定在顶部,左侧,底部,右侧。 图片框也固定在顶部,左侧,底部,右侧。

您必须将SizeMode属性设置为AutoSize ,这会导致PictureBox自动resize为图片的大小。

而且我认为你应该放下锚点并且仅锚定到左上角。 其余部分由专家组自动处理。 因为否则PictureBox可能会尊重锚点,无法自己resize而不是它包含的面板 – 导致没有再次滚动条。

来自MSDN :

目前,Windows窗体中存在一个限制,当启用RightToLeft并将AutoScroll设置为True时,它会阻止从ScrollableControl派生的所有类正常运行。 例如,假设您在窗体上放置一个控件,如Panel – 或从Panel派生的容器类(如FlowLayoutPanelTableLayoutPanel )。 如果将容器上的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。