Центрировать форму в VB6 - PullRequest
       17

Центрировать форму в VB6

2 голосов
/ 16 февраля 2010

Я пишу программу, которая будет использоваться внутри нашей компании, и столкнулась с проблемой ниже:

Как получить дочернюю форму для центрирования на экране при использовании развернутой родительской формы MDI в качестве фона

Ответы [ 4 ]

3 голосов
/ 16 февраля 2010

На дочернем экране MDI создайте функцию Form_Initialize следующим образом:

Private Sub Form_Initialize()

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

End Sub

Конечно, вам нужно будет заменить название формы MDI, где вы видите MDIForm1 в приведенном выше коде.

2 голосов
/ 16 февраля 2010

от 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
0 голосов
/ 26 февраля 2010

В дополнение к вышесказанному используйте метод me.Move [left], [top], [width], [height]

это быстрее и выполняет позиционирование в одном действии.

0 голосов
/ 16 февраля 2010

Выберите из свойств в IDE в нижнем правом углу окна свойств - родительский центр. Это можно назвать чем-то небольшим, но в раскрывающемся списке CENTER SCREEN

РЕДАКТИРОВАТЬ: Я думаю, что это положение Windows - центр родителя

...