无法滚动到WinForm底部

3

我正在使用Visual Studio 2012。基本上,我有一个WinForm想要扩展。

在表单设计器中,我可以看到我的表单有一个滚动条,但是当我编译程序时,滚动条不会出现。超出屏幕大小的控件被裁剪,而不是有一个滚动条。

我是否错过了任何设置?目前我将我的AutoScroll设置为true。

4个回答

3
当父控件设置了AutoScroll属性为true,并且子控件的MinimumSize大于父控件的客户区域时,滚动条会出现。
例如:
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var sampleForm = new Form() { AutoScroll = true };

    Panel panel = new Panel() { BackColor = Color.Red, AutoSizeMode = AutoSizeMode.GrowAndShrink, AutoSize = true };
    Button btn = new Button { Text = "Toggle MinSize", AutoSize = true };
    panel.Controls.Add(btn);

    btn.Click += delegate {
        if (panel.MinimumSize == Size.Empty)
            panel.MinimumSize = new Size(600,600);
        else
            panel.MinimumSize = Size.Empty;
    };

    sampleForm.Controls.Add(panel);
    Application.Run(sampleForm);
}

如果您的子面板正确计算出其首选大小,则可以覆盖 MinimumSize 属性并返回 PreferredSize

1

AutoScroll = true足以在表单上显示滚动条,无需其他设置。

只需尝试在表单中添加面板,并将面板的AutoScroll设置为true,然后添加控件并检查滚动是否有效即可。


1
请查看容器中控件的属性,确保想要自动滚动的控件的 Anchor 属性未设置为 Right 等,否则可能会导致自动滚动被关闭。还需检查容器的 RightToLeft 属性,尝试将其设置为默认值 "no"。保留html标签。

1

请确保已将 Dock.Fill 即 Dock 属性设置为 Fill 设置属性 AutoScroll = true , AutoSize = true, AutoSizeMode = GrowOnly ,您也可以通过向窗体添加面板并设置面板的 AutoScroll = true 来实现此目的。 将您的问题与示例 此处 进行比较。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接