親画面の中央に子画面を表示するのは
起動時は子画面のプロパティのみでできますが、
親画面のサイズを変更したときに、子画面を
親画面の中央にもっていくのは一工夫が必要
ということで、私なりにやってみました。
Private Sub Form1_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Resize
Dim sz As New Size ’親画面の子画面表示領域
For Each c As System.Windows.Forms.Control In Me.Controls
If TypeOf c Is System.Windows.Forms.MdiClient Then
sz.Width = c.ClientRectangle.Width
sz.Height = c.ClientRectangle.Height Exit For
End If
Next c
'子フォームを親フォームの中央に表示
For Each hMdiChild As Form In Me.MdiChildren hMdiChild.Left = (sz.Width - hMdiChild.Width) / 2 hMdiChild.Top = (sz.Height - hMdiChild.Height) / 2Next hMdiChild
End Sub
こんな感じで親画面の画面サイズを変更したときに
子画面を中央に配置することができました。
ここで注意しないといけないのが、親画面に表示する
子画面の領域はClientRectangle.Widthではないと
正確な領域が取得できないということでしょうか。
2008年2月20日水曜日
MDIの子画面を親画面の中央に移動
登録:
コメントの投稿 (Atom)
0 コメント:
コメントを投稿