10
MDI窗體內部是承載mdi子窗體的客戶端區域。我如何知道該區域有多大?到目前爲止我所能想到的最好的方法是找到父代的潛在客戶區域(mdiparent.ClientRectangle)的總大小,然後減去從客戶區域帶走的工具欄等組件的大小。有沒有更好的辦法?Winforms MDI客戶端區域的大小/位置
MDI窗體內部是承載mdi子窗體的客戶端區域。我如何知道該區域有多大?到目前爲止我所能想到的最好的方法是找到父代的潛在客戶區域(mdiparent.ClientRectangle)的總大小,然後減去從客戶區域帶走的工具欄等組件的大小。有沒有更好的辦法?Winforms MDI客戶端區域的大小/位置
表單上沒有屬性可以訪問MDI客戶端窗口。但是你可以這樣找回它:
public MdiClient GetMdiClientWindow() {
foreach (Control ctl in this.Controls) {
if (ctl is MdiClient) return ctl as MdiClient;
}
return null;
}
從那裏,只需使用它的Size屬性。
下面是代碼的在vb.net變體:
Public Function GetMdiClientWindowSize() As Size
For Each ctl As Control In Me.MdiParent.Controls
If TypeOf ctl Is MdiClient Then
Return ctl.Size
End If
Next
Return Nothing
End Function
謝謝,這工作真棒。出於某種原因,我不得不減去額外的4個像素(可能是一個框架邊框?),但我可以忍受。 – Jeff 2009-03-03 03:16:25