Winforms MDI客户区的大小/位置

时间:2009-03-02 20:07:56

标签: winforms mdi mdichild mdiparent

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

2 个答案:

答案 0 :(得分:20)

表单上没有可以访问MDI客户端窗口的属性。但你可以这样找回来:

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

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

答案 1 :(得分: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