Как получить размер верхней границы 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 с идеально выровненными вершинами.

Другие вопросы по тегам