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;
}
거기에서 크기를 사용하십시오.
다른 팁
다음은 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