如果包含的控件太大而无法在可调整大小的面板中显示滚动条?

时间:2009-08-03 14:58:39

标签: .net winforms user-controls scroll

我正在开发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属性来调整面板的大小,但没有用。

3 个答案:

答案 0 :(得分:25)

不要停靠用户控件。请改用Anchor属性。 (锚定到所有四个方面)。 设置用户控件的MinimumSize属性 设置面板的AutoScrollMinSize属性

除非您设置其AutoScrollMinSize属性,否则不会显示Panel的滚动条。将用户控件的Dock设置为Fill似乎隐藏了面板的滚动条。

答案 1 :(得分:2)

在对话框表单中的InitializeComponent之后,我做了这个,它似乎工作:

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

表格中有一堆子面板。所有行和列都设置为AutoSize。由于某种原因,控件不够智能告诉滚动控件它的首选大小。

答案 2 :(得分:1)

Panel.AutoScroll = *真有效 - 现在!对于面板和用户控件,我玩了上面的想法,最后将所有内容重置为默认值,在面板上设置Autoscroll,然后......瞧!不知怎的,它再次起作用......去看看......