Размер / расположение клиентской области Winforms MDI
внутри формы MDI находится клиентская область, в которой размещаются дочерние формы mdi. Как узнать, насколько велика эта область? Лучшее, что я могу придумать, это найти общий размер потенциальной клиентской области родителя (mdiparent.ClientRectangle), а затем вычитание размеров компонентов, таких как панели инструментов и т. д., которые удаляются из клиентской области. Есть ли лучший способ?
2 ответов
в форме нет свойства, которое дает вам доступ к окну клиента 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