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

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

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

也许使用V or HScrollBar可以提供帮助,但我真的不知道如何将它与表格链接…

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

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

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

试试这两个实验:

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

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

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

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

我不确定为什么左边右边的锚(子控件)强制面板不显示滚动条。

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

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

如果你想要包含一个滚动条,无论是什么(窗体边界内的控件),你也可以这样做。 垂直滚动条的示例代码( 来自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);