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;

c#中的可滚动窗体,AutoScroll=true不';不起作用

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

我不知道为什么(子控件的)锚点会强制面板不显示滚动条。

但无论如何。。。希望这能帮助到任何人。

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

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

试试这两个实验:

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

  2. 执行与#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);

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

  1. Dock=填充
  2. 锚点=顶部,左侧
  3. AutoScroll=true

就是这样。祝你好运!^^

注意垂直滚动

  1. 打开窗体的自动滚动属性。插入一个面板,然后将面板宽度设置为窗体宽度和面板高度等于您的总内容的长度,或者可能是1300或1500作为必需。

  2. 根据需要放置面板位置设置面板定位属性到顶部。放置您的全部面板内的内容。

希望它能解决您的问题

我也遇到了同样的问题。

你只需要添加这个:

this.AdjustFormScrollbars(true);