6

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

我简单地将属性设置AutoScroll为 true。我也试过while Auto Scrollis true,设置AutoSize为true/false,但这些都不起作用......还试图把Panel并在那里添加所有组件......仍然没有......

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

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

5 回答 5

6

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

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

试试这两个实验:

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

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

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

于 2013-07-22T14:45:12.937 回答
5

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

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

但无论如何......希望这会在这个日期对任何人有所帮助。

于 2016-06-22T21:30:05.763 回答
1

AutoScroll属性应该可以正常工作,但很可能您没有正确使用它:该栏仅在需要时出现。示例: 的最小 YForm为 0,其中一个控件 (a 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);
于 2013-07-22T14:27:50.123 回答
0

您需要设置父面板的属性。

  1. 停靠=填充
  2. 锚点 = 顶部,左侧
  3. 自动滚动 = 真

而已。祝你好运!^^

于 2021-11-28T07:02:58.737 回答
0

注意它的垂直滚动

  1. 打开表单的自动滚动属性。插入一个面板并将面板宽度设置为表单宽度和面板高度等于您的总内容的长度,或者根据需要可以为 1300 或 1500。

  2. 将面板位置设置为您希望将面板锚属性设置为顶部。将您的所有内容放在面板内。

希望它能解决你的问题

于 2022-01-28T11:52:39.253 回答