Привет, у меня есть дочерняя форма mdi (форма A), которая при нажатии отображает другую дочернюю форму mdi (форма B), обе из которых имеют одну и ту же родительскую форму. Проблема в том, что я не могу найти способ центрировать дочернюю форму B по дочерней форме A? Это вообще разрешено в vb.net? Однако я могу отобразить форму B (как дочерний элемент без mdi) с центром в форме A (как дочерняя форма mdi), что странно. Хотя это может сработать, эта проблема заключается в том, что по крайней мере граница форм в Windows 8 визуально полностью отличается от формы MDI в Windows 8, что делает все это без униформы и беспорядочным?
Дочерняя форма mdi не будет центрироваться с другой дочерней формой mdi в том же роднике?
comment
Как вы отображаете ребенка без MDI из центра?
- person Chetan Ranpariya   schedule 13.06.2019
comment
просто поместив его под кнопку, найденную в дочерней форме A, со следующим кодом: FormB.Show (), затем в форме B в событии загрузки, я центрирую формы с помощью Dim x As Integer = ((FormA.Width / 2) - ( Me.Width / 2)) Dim y As Integer = ((FormA.Height / 2) - (Me.Height / 2)) Me.Location = New Point (x, y)
- person LabRat   schedule 13.06.2019
comment
Имейте в виду, что это не проблема. Проблема в том, что если я покажу форму B как mdi и покажу форму A как mdi, форма B не будет центрироваться с формой A, даже если они используют одну и ту же форму Parrent.
- person LabRat   schedule 13.06.2019
Ответы (1)
Вот один из способов добиться этого:
Public Class MdiChildA
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim childB As New MdiChildB
childB.MdiParent = Me.MdiParent
AddHandler childB.Load, AddressOf child_Load
childB.Show()
End Sub
Private Sub child_Load(sender As Object, e As EventArgs)
Dim otherChild As Form = DirectCast(sender, Form)
otherChild.StartPosition = FormStartPosition.Manual
otherChild.Location = New Point((Me.Location.X + Me.Size.Width / 2) - otherChild.Size.Width / 2,
(Me.Location.Y + Me.Size.Height / 2) - otherChild.Size.Height / 2)
End Sub
End Class
person
Idle_Mind
schedule
13.06.2019