Как получить размер верхней границы NonClient?
Мне нужно выровнять вторичную форму по правой границе другой формы.
Когда мы компилируем и запускаем скомпилированное приложение (не при запуске его из IDE) с включенным AERO, это происходит так:
Итак, благодаря великому ответу GJKH здесь: Как правильно определить размер области, не относящейся к клиенту, для Aero?
... Теперь я могу выровнять вторичную форму справа от основной формы, но вторичная форма все еще выравнивается по пикселям сверху вниз:
Это код, который я использую:
If Debugger.IsAttached Then
Form2.Location = New Point(Me.Right, Me.Top)
Else
Form2.Location = New Point((Me.Location.X + (Me.Width + (Me.Width - Me.ClientSize.Width))), Me.Location.Y)
End If
1 ответ
Решение
Я поместил это в событие в Form1:
Dim frm As New Form2
frm.Show()
frm.SetDesktopLocation(Me.Width + Me.DesktopLocation.X, Me.DesktopLocation.Y)
и form2 выстроились в линию сразу же справа от form1 с идеально выровненными вершинами.