私は社内で使用するプログラムを書いていますが、以下の問題に遭遇しました。
MDIの親の最大化されたフォームを背景として使用するときに、子フォームを画面の中央に配置するにはどうすればよいですか。
MDI子画面で、次のようなForm_Initialize関数を作成します。
Private Sub Form_Initialize()
Me.Left = (MDIForm1.ScaleWidth - Me.Width) / 2
Me.Top = (MDIForm1.ScaleHeight - Me.Height) / 2
End Sub
もちろん、上記のコードでMDIForm1が表示されているMDIフォームの名前に置き換える必要があります。
Microsoft から: 「MDI 子フォームの初期サイズと配置は、Load イベント プロシージャで特に設定しない限り、Microsoft Windows オペレーティング環境によって制御されます。」
親 より:
Private Sub MDIForm_Load()
CenterChildForm MDIForm1, Form1
End Sub
Sub CenterChildForm(Parent As Form, Child As Form)
If Parent.WindowState = 1 Then Exit Sub 'The Parent is minimized, centering is invalid.
Child.Top = (Parent.ScaleHeight - Child.Height) / 2
Child.Left = (Parent.ScaleWidth - Child.Width) / 2
End Sub
子供 より:
Private Sub Form_Load()
Me.Left = (MDIForm1.ScaleWidth - Me.Width) / 2
Me.Top = (MDIForm1.ScaleHeight - Me.Height) / 2
End Sub
右下のIDEのプロパティからWINDOWSPROPERTY-CENTERPARENTを選択します。少し違う名前が付けられているかもしれませんが、CENTERSCREENのドロップダウンにあります
編集:私はそれがウィンドウズの位置だと思います-センターの親
上記に加えて、me.Move [left], [top], [width], [height] メソッドを使用します。
それはより速く、単一のアクションで位置決めを実行します。