c#中的可滚动窗体,AutoScroll=true不';不起作用
本文关键字:true 不起作用 AutoScroll 滚动 窗体 | 更新日期: 2023-09-27 18:24:09
我必须遵守哪些规则才能使表单滚动。。。
我简单地将属性AutoScroll
设置为true。当Auto Scroll
为true时,我也尝试将AutoSize
设置为true/false,但这些都不起作用。。。还试图将Panel添加到其中并添加所有组件。。。还是什么都没有。。。
也许使用V or HScrollBar
可以有所帮助,但我真的不知道如何将其与Form…联系起来
form.AutoScroll = true;
formMainLayout.AutoScroll = true;
rootPanel.AutoScroll = true;
我也遇到了同样的问题,我设法解决了它。。。面板内的所有子控件都有一个Left&右锚点,当我只将锚点设置为"顶部"时,滚动条工作正常。
我不知道为什么(子控件的)左和右锚点会强制面板不显示滚动条。
但无论如何。。。希望这能帮助到任何人。
内容控制滚动。除非需要,否则滚动条不会出现。通常,有一个可用的属性可以设置为强制它们始终可见,并在需要时禁用。
AutoScroll
属性必须是true
,正如您已经找到的那样。但是,可滚动控件的内容必须强制父控件显示滚动条。这一部分取决于控件如何嵌入父级中。
试试这两个实验:
-
在表单上放置
Panel
,并将其固定到Fill
。将Panel的AutoScroll
属性设置为true
。在该面板中,放置一个TextBox
,并将其设置为停靠为Fill
。同时将MultiLine
设置为true
。运行应用程序,您会注意到两者的大小只是使用了可用空间。。。由于Panel
及其TextBox
都不大于它们所占据的空间。 -
执行与#1中相同的步骤,但这次不要停靠
TextBox
。相反,将其设置为较大的大小,您知道该大小将大于可见的Panel
的数量。运行应用程序现在应该会产生一个滚动的Panel
。
希望这个小测试有助于演示如何控制表单上的滚动。
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);
您需要设置父面板的属性。
- Dock=填充
- 锚点=顶部,左侧
- AutoScroll=true
就是这样。祝你好运!^^
注意垂直滚动
-
打开窗体的自动滚动属性。插入一个面板,然后将面板宽度设置为窗体宽度和面板高度等于您的总内容的长度,或者可能是1300或1500作为必需。
-
根据需要放置面板位置设置面板定位属性到顶部。放置您的全部面板内的内容。
希望它能解决您的问题
我也遇到了同样的问题。
你只需要添加这个:
this.AdjustFormScrollbars(true);