2

我正在编写一个在我们公司内部使用的程序,并且遇到了以下问题:

当使用 MDI 父最大化窗体作为背景时,如何让子窗体在屏幕上居中

4

4 回答 4

3

在 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 表单的名称。

于 2010-02-16T14:39:41.630 回答
2

来自 Microsoft:“MDI 子窗体的初始大小和位置由 Microsoft Windows 操作环境控制,除非您在 Load 事件过程中专门设置它们。”

来自家长:

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
于 2010-02-16T14:53:00.380 回答
0

从 IDE 右下角的属性中选择 WINDOWS PROPERTY - CENTER PARENT。它的名称可能略有不同,但在 CENTER SCREEN 的下拉列表中

编辑:我认为这是 WINDOWS 位置 - 中心父

于 2010-02-16T13:12:52.560 回答
0

作为上述的补充,使用 me.Move [left], [top], [width], [height] 方法

它更快并且在单个动作中执行定位。

于 2010-02-26T00:02:14.603 回答