【问题标题】:Unable to scroll to the bottom of WinForm无法滚动到 WinForm 底部
【发布时间】:2014-12-31 03:03:58
【问题描述】:

我为此使用了 Visual Studio 2012。基本上我有一个想要扩展的 WinForm。

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

有没有我遗漏的设置?目前我设置了我的 AutoScroll = true。

【问题讨论】:

    标签: c# winforms scroll


    【解决方案1】:

    当父控件将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

    【讨论】:

      【解决方案2】:

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

      只是尝试在表单中添加面板并设置面板 AutoScroll = true 然后向其添加控件并检查滚动是否正常工作?

      【讨论】:

        【解决方案3】:

        查看容器中您希望自动滚动对其起作用的控件的属性。一种可能性是您将这些控件中的一个或多个 Anchor 属性设置为 Right 或其他内容,这可以在幕后反转自动滚动设置以有效地将其关闭。还要检查容器的 RightToLeft 属性,并尝试将其设置为默认的“no”

        【讨论】:

          【解决方案4】:

          确保您已将 Dock.Fill 即 Dock 属性设置为 Fill 设置属性 AutoScroll = true , AutoSize = true, AutoSizeMode = GrowOnly ,您也可以通过在表单中​​添加面板并设置面板 AutoScroll = true 来做到这一点。 将您的问题与示例 here

          进行比较

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-26
            • 1970-01-01
            • 1970-01-01
            • 2013-05-05
            • 1970-01-01
            • 1970-01-01
            • 2018-07-21
            • 2017-09-06
            相关资源
            最近更新 更多