如何使滚动条出现在一个可调整大小的面板时,所包含的控制是太大了呢?(How to make scro

2019-06-27 16:34发布

我正在开发一个Windows窗体应用程序(.NET 2.0,VS 2005)。 我基本上包含了被动态的形式调整面板的形式:

this.panel1.Dock=DockStyle.Fill;

该面板被简单地用作容器。 在运行时,自定义控制将被添加:

UserControl uc=new UserControl();
panel1.Controls.Add(uc);
uc.Dock=DockStyle.Fill;

由于这种自定义控件具有最小尺寸的要求,我想滚动条到含面板上,如果它变得太小,无法显示整个控制:

this.panel1.AutoScroll=true;

这是行不通的。 我试图调整使用Anchor属性,而不是Dock属性面板,但无济于事。

Answer 1:

不要停靠您的用户控制。 使用锚点属性。 (锚四面)。 设置你的用户控件的属性的minimumSize设置面板的AutoScrollMinSize属性还

小组的滚动条将不会出现,除非你设置它的AutoScrollMinSize属性还。 设置用户控件的Dock来填充似乎隐藏面板的滚动条。



Answer 2:

在InitializeComponent在对话框的形式,我这样做之后它似乎工作:

tableLayoutPanel1.AutoScrollMinSize = tableLayoutPanel1.GetPreferredSize(new Size(1, 1));

我有一大堆的表中的子面板。 所有的行和列设置为自动调整大小。 出于某种原因,控制是不够聪明,告诉它的首选大小的滚动控制。



Answer 3:

Panel.AutoScroll = *真正的作品 - 现在! 我打,发挥与上述思路,为面板和用户同时控制,最后所有参数重置回默认设置自动滚动面板上,和...瞧! 不知它再次工程...去图...



文章来源: How to make scrollbars appear in a resizable panel when the contained control is too big for it?