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