如何使UserControl与容器(Form)一起成长

时间:2013-06-06 19:53:37

标签: c# winforms

我有一个应用程序,它包含一个Form,加载后会添加两个来自UserControl的控件。 UserControls共享相同的坐标空间,我用BringToFront()/ SendToBack()替换哪一个是可见的。基本上是一个穷人的WPF页面。每个UC都有一个面板,占据UserControl的整个区域,面板包含所有按钮,TextBoxes,DataGridView等。

基本上,我正在尝试使用包含它们的Form创建UserControls大小,使用Dock或Anchor属性,但问题是UserControl本身似乎没有这些属性,所以当我调整窗口大小时,包含所有内容的面板永远不会变大。我已经尝试在每个UserControl中设置面板的Anchor和Dock属性无济于事。我还尝试将FlowLayoutPanel添加到窗体,然后将UserControls添加到它而不是直接添加到Form对象。结果相同。我是否通过使用包含面板的UserControl来搞砸自己?有任何解决这个问题的方法吗? PS,我是C#/ .NET的新手。我已经在Java工作了一段时间了。

代码:

//Add the panels
FsLookupPanel = new FSLookupPanel(this, this.LdapConn, this.dbConnect);
MakeResPanel = new MakeReservationPanel(this, this.dbConnect);

this.flowLayoutPanel1.Controls.Add(FsLookupPanel);
this.flowLayoutPanel1.Controls.Add(MakeResPanel);

//this.Controls.Add(FsLookupPanel);
//this.Controls.Add(MakeResPanel);

FsLookupPanel.Visible = true;
MakeResPanel.Visible = false;

1 个答案:

答案 0 :(得分:0)

你尝试过这样的事吗?

FsLookupPanel.Dock = MakeResPanel.Dock = DockStyle.Fill;
this.flowLayoutPanel1.Controls.Add(FsLookupPanel);
this.flowLayoutPanel1.Controls.Add(MakeResPanel);

这项工作与框架3.5,所以你应该没有4.5

通过设计师设置属性时没有它,但属性就在那里。通过代码,它正在运作