2013-02-03 193 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(),以顯示對話框子窗口被聚焦,直到關閉。