c#中的可滚动表单,AutoScroll = true不起作用

时间:2013-07-22 13:44:50

标签: c# forms scroll

为了使表格可滚动,我必须遵守哪些规则...

我简单地将Property AutoScroll设置为true。 我也尝试Auto Scroll为真,将AutoSize设置为true / false,但这些都没有工作......也尝试将Panel添加到其中所有组件...仍然没有...

也许使用V or HScrollBar可以提供帮助,但我真的不知道如何将其与表单相关联...

form.AutoScroll = true;
formMainLayout.AutoScroll = true;
rootPanel.AutoScroll = true;

3 个答案:

答案 0 :(得分:4)

内容控制滚动。除非需要,否则不会显示滚动条。通常,有一个可用的属性可以设置为强制它们始终可见,并且只需在需要时禁用它。

AutoScroll属性必须为true,如您所见。但是,可滚动控件的内容必须强制父控件显示滚动条。这部分取决于控件如何嵌入父级中。

尝试这两个实验:

  1. 在表单上放置Panel并将其停靠在Fill。将Panel的AutoScroll属性设置为true。在该面板中,放置TextBox并将其设置为Fill。同时将MultiLine设置为true。运行应用程序,您会注意到两者的大小只是使用可用空间...不会发生滚动,因为Panel及其TextBox都不会大于它们占用的空间。

  2. 执行与#1相同的步骤,但这一次,请勿停靠TextBox。相反,将其设置为较大的尺寸,您知道的尺寸会大于可见的Panel。运行应用程序现在应该生成滚动Panel

  3. 希望这个小测试有助于演示控制表单滚动的内容。

答案 1 :(得分:4)

我也有同样的问题,我设法修复它... 面板内的所有子控件都有一个& 正确锚点,当我只将锚点设置为Top时,滚动条在哪里工作正常。

我不确定为什么锚点(子控件)会强制面板不显示滚动条。

但无论如何......希望这对今天的任何人都有帮助。

答案 2 :(得分:0)

AutoScroll属性应该可以正常工作,但很可能你没有正确使用它:只在需要时才显示该栏。示例:Form的最小Y为0,其中一个控件的最小Y(TextBox)为-20。

如果您想要包含滚动条,无论是什么(窗体边界内的控件),您也可以这样做。垂直滚动条的示例代码(from MSDN):

// Create and initialize a VScrollBar.
VScrollBar vScrollBar1 = new VScrollBar();

// Dock the scroll bar to the right side of the form.
vScrollBar1.Dock = DockStyle.Right;

// Add the scroll bar to the form.
Controls.Add(vScrollBar1);