滚动条TableLayoutPanel c#

问题描述

| 我有一个TableLayoutPanel,里面有几个TableLayoutPanels。数量会动态变化,并且几乎总是太多而无法容纳在表单中。我需要它具有滚动条以便可以查看整个组件。 我尝试将主面板上的autoscroll属性设置为true并将其停靠和/或设置最大大小。控制器要做的是,尝试将所有面板都安装在窗体内,从而更改其内部组件的大小并将它们全部挤压在一起,而不是创建一个滚动条来滚动我的面板。 你们知道我可能做错了吗? 谢谢。 约瑟 PS:我正在使用VS 2010     

解决方法

        有一天,我遇到了同样的问题,发现问题是我在TableLayoutPanel上设置了一个“ MinimumSize \”。不管Dock和/或Anchor约束如何,这都会使控件保持最低高度,从而使AutoScroll功能无法正常工作。由于该功能是基于对控件的所有子控件的Y坐标进行简单检查而得出的,因此,尽管TableLayoutPanel的子控件“消失了”,但滚动条并未出现。由于其父控件剪辑区域而看不见。 因此,换句话说,检查TableLayoutPanel的MinimumSize属性并确保其为空。     ,        也许这会有所帮助。 如果仍然不起作用,请尝试放置一个面板,然后将tableLayoutPanel放入该面板。将面板的autoScroll属性设置为true。     ,        我在项目中发生了同样的事情。我所有的控件都压缩在TableLayoutPanel中。就我而言,我将许多控件呈现为ColumnStyle.Percent。将其切换为ColumnStyle.Autosize是我需要的解决方案。 我假设您也已经设置了这些属性,但是以防万一我的TableLayoutPanels也使用以下设置:
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
AutoScroll = true;
    ,        答案很晚,但我最近一直在与复杂的布局作斗争,并且一直在寻找解决方案以使我的滚动在具有太多字段的屏幕上工作。老实说,更好的设计应该在99%的时间避免出现此问题,但有时您的双手会被绑住。 问题 问题似乎是,如果您对多个网格,组和面板的嵌套太深,它们将停止向父控件正确报告其内容已超出当前屏幕的大小。实际上,问题可能在于所有控件都设置为停靠填充并适合其父控件,因此顶级控件不知道其great-great-great-grand-grandchild控件的内容不不适合。 解 解决此问题的技巧似乎是手动强制最上面的面板以某个最小尺寸滚动:
MainPanel.AutoSize = true;
MainPanel.AutoScrollMinSize = new Size(400,500);