我正在开发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属性来调整面板的大小,但没有用。
答案 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,然后......瞧!不知怎的,它再次起作用......去看看......