为了使表格可滚动,我必须遵守哪些规则...
我简单地将Property AutoScroll
设置为true。
我也尝试Auto Scroll
为真,将AutoSize
设置为true / false,但这些都没有工作......也尝试将Panel添加到其中所有组件...仍然没有...
也许使用V or HScrollBar
可以提供帮助,但我真的不知道如何将其与表单相关联...
form.AutoScroll = true;
formMainLayout.AutoScroll = true;
rootPanel.AutoScroll = true;
答案 0 :(得分:4)
内容控制滚动。除非需要,否则不会显示滚动条。通常,有一个可用的属性可以设置为强制它们始终可见,并且只需在需要时禁用它。
AutoScroll
属性必须为true
,如您所见。但是,可滚动控件的内容必须强制父控件显示滚动条。这部分取决于控件如何嵌入父级中。
尝试这两个实验:
在表单上放置Panel
并将其停靠在Fill
。将Panel的AutoScroll
属性设置为true
。在该面板中,放置TextBox
并将其设置为Fill
。同时将MultiLine
设置为true
。运行应用程序,您会注意到两者的大小只是使用可用空间...不会发生滚动,因为Panel
及其TextBox
都不会大于它们占用的空间。
执行与#1相同的步骤,但这一次,请勿停靠TextBox
。相反,将其设置为较大的尺寸,您知道的尺寸会大于可见的Panel
。运行应用程序现在应该生成滚动Panel
。
希望这个小测试有助于演示控制表单滚动的内容。
答案 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);