C#Panel自动滚动不起作用

时间:2010-01-12 12:04:51

标签: c# winforms

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

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

5 个答案:

答案 0 :(得分:20)

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

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

答案 1 :(得分:9)

来自MSDN

  

目前,Windows窗体中存在一项限制,即当ScrollableControl启用且RightToLeft设置为AutoScroll时,会阻止True派生的所有类正常运行。例如,假设您在表单上放置了一个控件,例如Panel - 或者从Panel派生的容器类(例如FlowLayoutPanelTableLayoutPanel)。如果您将容器上的AutoScroll设置为True,然后将容器内一个或多个控件上的Anchor属性设置为Right,则不会出现任何滚动条。从ScrollableControl派生的类就像AutoScroll设置为False一样。

答案 2 :(得分:6)

不应将图片框固定在底部和右侧。而是将其大小调整为要显示的内容。

答案 3 :(得分:1)

对于我来说,下面的代码有助于添加滚动条:

Panel2.Controls.Clear();
Panel2.AutoScroll = false;
Panel2.VerticalScroll.Enabled = true;
Panel2.VerticalScroll.Visible = true;

Panel2.AutoScroll = true;

答案 4 :(得分:0)

将Panel的Border Style更改为Fixed Single,然后将Panel的Auto Scroll属性更改为True。