0

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

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

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

我发现如果我将面板的 AutoScrollMinSize 设置为某个值,那么当我达到设定的大小时,就会出现这些滚动条。

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

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

谢谢!

4

1 回答 1

0

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

private void panel1_Resize(object sender, EventArgs e)
{
    panel1.AutoScrollMinSize = new System.Drawing.Size(panel1.Width, panel1.Height);
}
于 2013-03-21T08:17:20.513 回答