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

jov*_*kov 6 c# forms scroll

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

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

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

form.AutoScroll = true;
formMainLayout.AutoScroll = true;
rootPanel.AutoScroll = true;
Run Code Online (Sandbox Code Playgroud)

小智 8

我也遇到了同样的问题,我设法解决了它......面板内的所有子控件都有一个锚点,当我只将锚点设置为顶部时,滚动条工作正常。

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

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


Don*_*ott 6

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

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

试试这两个实验:

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

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

希望这个小测试有助于演示是什么控制了表单上的滚动。