我有一个winform usercontrol,它有一个Panel,它包含一些TableLayout(还有一些其他用户控件)。
我的所有组件都有Dock=Fill
和Autosize=True
属性。
目前,当我调整窗口大小时,我没有任何滚动条,溢出只是没有显示。
我发现如果我将面板的AutoScrollMinSize设置为某个东西,那么当我达到设置尺寸时,我会出现这些滚动条。
我的问题是我在运行时添加/删除元素,而且我还根据配置显示或不显示某些内容。所以对我来说,在这里硬编码很难,要么我滚动太快,要么太晚。
我确信应该有一种方法来配置我的userControl,而不必自己计算大小,让组件显示滚动条,当孩子的内容无法显示时,你知道怎么做吗?
谢谢!
答案 0 :(得分:0)
您可以在面板调整大小事件或窗体的resize事件上更改AutoScrollMinSize值。这样,它不会是固定值,如果面板的子控件超出面板边缘,将会有一个滚动条 -
private void panel1_Resize(object sender, EventArgs e)
{
panel1.AutoScrollMinSize = new System.Drawing.Size(panel1.Width, panel1.Height);
}