在VB6中居中放置窗体

在VB6中居中放置窗体,vb6,mdiparent,Vb6,Mdiparent,我正在编写一个在公司内部使用的程序,遇到了以下问题: 当使用MDI父最大化窗体作为背景时,如何使子窗体在屏幕上居中从IDE右下角的属性中选择WINDOWS属性-父窗体。它的名称可能有点不同,但在下拉菜单中与中心屏幕相同 编辑:我认为是WINDOWS位置-居中父项在MDI子屏幕中,创建如下表单初始化函数: Private Sub Form_Initialize() Me.Left = (MDIForm1.ScaleWidth - Me.Width) / 2 Me.Top = (M

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


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

从IDE右下角的属性中选择WINDOWS属性-父窗体。它的名称可能有点不同,但在下拉菜单中与中心屏幕相同


编辑:我认为是WINDOWS位置-居中父项

在MDI子屏幕中,创建如下表单初始化函数:

Private Sub Form_Initialize()

    Me.Left = (MDIForm1.ScaleWidth - Me.Width) / 2
    Me.Top = (MDIForm1.ScaleHeight - Me.Height) / 2

End Sub
当然,您需要在上面代码中看到MDIForm1的地方替换MDI表单的名称。

来自Microsoft: “MDI子窗体的初始大小和位置由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

除上述方法外,还可以使用me.Move[左]、[顶]、[宽]、[高]方法


它更快,只需一次操作即可执行定位。

子窗体是MDI子窗体还是弹出的对话框?如果尝试将MDI子窗体的StartUpPosition设置为手动以外的任何值,则会出现错误:“属性值无效”。