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