Winform:带滚动的面板需要定义宽度/高度吗?

时间:2013-03-18 11:58:38

标签: c# .net winforms

我有一个winform usercontrol,它有一个Panel,它包含一些TableLayout(还有一些其他用户控件)。

我的所有组件都有Dock=FillAutosize=True属性。

目前,当我调整窗口大小时,我没有任何滚动条,溢出只是没有显示。

我发现如果我将面板的AutoScrollMinSize设置为某个东西,那么当我达到设置尺寸时,我会出现这些滚动条。

我的问题是我在运行时添加/删除元素,而且我还根据配置显示或不显示某些内容。所以对我来说,在这里硬编码很难,要么我滚动太快,要么太晚。

我确信应该有一种方法来配置我的userControl,而不必自己计算大小,让组件显示滚动条,当孩子的内容无法显示时,你知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在面板调整大小事件或窗体的resize事件上更改AutoScrollMinSize值。这样,它不会是固定值,如果面板的子控件超出面板边缘,将会有一个滚动条 -

private void panel1_Resize(object sender, EventArgs e)
{
    panel1.AutoScrollMinSize = new System.Drawing.Size(panel1.Width, panel1.Height);
}