2015-06-04 6 views
0

Я работаю с приложением MDI, и я хочу знать, как лучше всего открыть дочерние формы дочерних форм в главном окне на полном экране? Некоторые из этих дочерних форм создаются из экземпляров, поэтому я не знаю, как обращаться к родительскому при каждом открытии экземпляра.Как я могу открыть ребенка MDI из другого ребенка MDI на полноэкранном режиме - внутри родительской формы

Например, у меня есть основная форма родителя (frmMain). я затем открыть дочернюю форму (Form2), используя следующий код:

frmMain:

Dim frm As New Form2 
frm.MdiParent = Me 
frm.WindowState = FormWindowState.Maximized 
frm.Show() 

Form2:

Private Sub frmAssetTracker_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    fMain = DirectCast(Me.MdiParent, frmMain) 

    Me.MaximizeBox = False 
    Me.WindowState = FormWindowState.Normal 
    Me.WindowState = FormWindowState.Maximized 
End Sub 

Это прекрасно работает и дает мне полноэкранный ребенок внутри родительской формы. Однако, как мне открыть ребенка Form2 на полноэкранном режиме и так далее?

Итак, как я могу открыть Form3 из Form2, используя frmMain как родитель?

UPDATE Моего frmMain имеет закрепленный элемент в верхней части окна, чтобы обеспечить панели кнопок для всего приложения. Когда я открываю дочерние формы из родителя, используя мой код ниже, он максимально увеличивает форму вокруг прикрепленного элемента. Однако, когда я пытаюсь открыть дочерний элемент дочерней формы, он создает эффект «прыжка», когда форма переходит из нормального состояния в максимизированное состояние. Если я удалю Me.WindowState = FormWindowState.Normal, дочерняя форма находится за прикрепленным элементом родительской формы.

ответ

0

Try После кода В Form2

Dim frm As New Form3 
frm.MdiParent = Me.MdiParent 
frm.WindowState = FormWindowState.Maximized 
frm.Dock=DockStyle.Fill 
frm.Show() 
+0

Благодаря Sathish, что открывает свою форму, но это, кажется, не правильно состыковать в полноэкранном режиме. Единственный способ, котор я могу обойти это на Form3 добавить следующее: 'Me.MaximizeBox = False Me.WindowState = FormWindowState.Normal Me.WindowState = FormWindowState.Maximized'. Это, похоже, приводит форму в нормальное состояние, а затем максимизирует правильность, но я получаю эффект прыжка. В противном случае форма, похоже, сидит за состыкованными элементами в родительской форме. – Riples