2013-12-09 52 views
1

在我的应用程序中有两种形式。MDI子表格的尺寸控制

MDIParentForm 
Child form 

子窗体包含一个面板。这里是代码:

private void ChildForm_SizeChanged(object sender, EventArgs e) 
{ 
if (this.WindowState.Equals(FormWindowState.Maximized)) 
    { 
     this.lPanel.Height *= 2; 
     this.lPanel.Width *= 2; 
    } 
if (this.WindowState.Equals(FormWindowState.Normal) 
     || this.WindowState.Equals (FormWindowState.Minimized)) 
    { 
     this.lPanel.Height /= 2; 
     this.lPanel.Width /= 2; 
    } 

} 

现在,我最大化儿童形式。并从任务栏最小化MDIParent表单。现在,当我恢复MDIParent时,面板(即在ChildForm中)扩展为在代码中加倍。子窗体中的控件不得扩展。疲倦于此。

+0

这不能工作,SizeChanged事件运行比你希望更频繁得多。你需要编写更聪明的代码。如果表单的ClientSize足够大,只展开面板。当尺寸太小时恢复尺寸。 –

回答

0

如果你想要的只是自动调整大小,为什么不使用锚? 参考: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.anchor(v=vs.110).aspx

+0

Anchor属性保持控件的相对位置。我不认为它调整了控制权。 – DhavalR

+0

它也可以重新调整大小。如果你锚定一个控件来说左右。然后在原始容器重新调整大小后,控件将左右扩展。顶部和底部相同。如果你想让它向各个方向扩展,你可以将它锚定到各个方向。 –

+0

锚点调整控件相对于表单大小。但我想扩大到特定的价值。锚在我认为不起作用。 – DhavalR