12

MDI フォーム内には、mdi 子フォームをホストするクライアント領域があります。その領域の広さを知るにはどうすればよいですか? これまでのところ、親の潜在的なクライアント領域 (mdiparent.ClientRectangle) の合計サイズを見つけてから、クライアント領域から離れているツールバーなどのコンポーネントのサイズを差し引くことです。より良い方法はありますか?

4

2 に答える 2

22

MDI クライアント ウィンドウにアクセスできるフォームのプロパティはありません。しかし、次のように戻すことができます。

public MdiClient GetMdiClientWindow() {
  foreach (Control ctl in this.Controls) {
    if (ctl is MdiClient) return ctl as MdiClient;
  }
  return null;
}

そこから、その Size プロパティを使用するだけです。

于 2009-03-02T22:21:00.373 に答える
1

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
于 2009-03-03T03:17:27.370 に答える