문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top