12

MDI 表单内部是一个客户区,它承载 mdi 子表单。我如何知道该区域有多大?到目前为止,我能想到的最好的方法是找到父级潜在客户区(mdiparent.ClientRectangle)的总大小,然后减去从客户区带走的工具栏等组件的大小。有没有更好的办法?

4

2 回答 2

22

窗体上没有属性可以让您访问 MDI 客户端窗口。但是你可以像这样找到它:

public MdiClient GetMdiClientWindow() {
  foreach (Control ctl in this.Controls) {
    if (ctl is MdiClient) return ctl as MdiClient;
  }
  return null;
}

从那里,只需使用它的 Size 属性。

于 2009-03-02T22:21:00.373 回答
1

这是 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
于 2009-03-03T03:17:27.370 回答