Внутри формы MDI находится клиентская область, в которой размещаются дочерние формы mdi. Как узнать, насколько велика эта область? Лучшее, что я могу придумать до сих пор, - это найти общий размер родительской потенциальной клиентской области (mdiparent.ClientRectangle), а затем вычесть размеры компонентов, таких как панели инструментов и т.д., Которые удаляют из клиентской области. Есть ли лучший способ?
Размер/расположение Winforms MDI Client Area
Ответ 1
В форме нет свойства, которое дает вам доступ к клиенту MDI-клиента. Но вы можете найти его так:
public MdiClient GetMdiClientWindow() {
foreach (Control ctl in this.Controls) {
if (ctl is MdiClient) return ctl as MdiClient;
}
return null;
}
Оттуда просто используйте свойство Size.
Ответ 2
Здесь вариант этого кода в 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