質問

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top