2013-02-03 145 views
2

我有一个MDI-Parent表单名称frmMain,我加载大量的子窗体英寸设置可用区域

frmMain在顶部有一个菜单,涵盖了约说,1000空间* 25。当孩子形成负荷时,他们可以出生在frmMain的任何位置,有时他们会走到菜单后面。

有没有办法让frmMain认为这个菜单下的空间不应该被使用(类似于表单区域)?或者我应该明确告诉孩子表格位于height=25以下?

enter image description here

蓝色部分是菜单和它上面,红色部分是面板。

+0

您必须停靠“菜单”以防止其重叠MDI子窗口。将Dock属性设置为Top,例如Top。 –

+0

[使用winforms,mdi,父窗体和子窗体,在父窗体下的指定空间中打开子窗体]的可能的重复(http://stackoverflow.com/questions/5472485/using-winforms-mdi-parent-and-child -form-opening-child-forms-in-specified-s) –

回答

2

我不知道这是不是你方便,但你可以在需要的子窗体空间添加Panel/FlowLayoutPanel到您的MDI窗口,并添加表格面板是这样的:

Form frm = New Form(); 
frm.TopLevel = False; 
frm.Show(); 
FlowLayoutPanel1.Controls.Add(frm); 

套装FlowLayoutPanel.BackColorTransparent,所以它看起来像一个mdi容器。

+0

不错的主意,迟到接受:) –

0

我觉得没有办法做到这一点,你必须为每个窗体务实设置位置或设置其start up位置center parent。或者干脆用Child.ShowDialog()而不是使用Child.Show(),以显示对话框子窗口被聚焦,直到关闭。