Winforms MDI客户区的大小/位置

Jef*_*eff 11 mdi mdiparent mdichild winforms

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

Han*_*ant 20

表单上没有可以访问MDI客户端窗口的属性.但你可以像这样找到它:

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

从那里,只需使用其Size属性.

  • @Jeff使用MdiClient.ClientSize而不是减去4个像素 (3认同)