Поскольку встроенная функциональность для позиционирования форм в VB.NET не всегда подходит для использования, я пытаюсь сделать мой sub для этого.Центральная форма на экране или на родительском
Но я что-то пропустил ...
Public Sub form_center(ByVal frm As Form, Optional ByVal parent As Form = Nothing)
Dim x As Integer
Dim y As Integer
Dim r As Rectangle
If Not parent Is Nothing Then
r = parent.ClientRectangle
x = r.Width - frm.Width + parent.Left
y = r.Height - frm.Height + parent.Top
Else
r = Screen.PrimaryScreen.WorkingArea
x = r.Width - frm.Width
y = r.Height - frm.Height
End If
x = CInt(x/2)
y = CInt(y/2)
frm.StartPosition = FormStartPosition.Manual
frm.Location = New Point(x, y)
End Sub
Как получить этот подпункт, чтобы правильно поставить форму в середине экрана или в другой форме, если она определена?
, как это то, что больше подходит или проще, чем родной CenterScreen или CenterParent? Вам нужно проверить, что родительская форма на самом деле больше, чем форма, которую вы пытаетесь показать ... – Plutonix
Это подходит, потому что я могу разместить форму для размещения в обработчике _Load или позже, и я не должен думать о настройке стартовой позиции для "Руководство". –
Кроме того, родительская форма не должна быть настоящим родителем, может быть любой формы! –