2012-10-10 44 views
5

Hice un borde personalizado para mi hijo mdi. MDI propiedades del formulario niño:MDI secundario solo está visible cuando se maximiza WindowState

  • FormBorderStyle = Ninguno
  • CONTROLBOX = False
  • Text = ""
  • WindowState = maximizada

En primer lugar, cuando tuve la propiedad de conjunto Windowstate a Normal, mi hijo mdi no se parece, creo que tiene un tamaño de 0; 0 entonces. Intenté configurar el tamaño en el método Form_Load, pero aún nada ha cambiado. Cuando cambié FormBorderStyle a FixedSingle, pude ver una forma muy pequeña con suficiente espacio para hacer doble clic en la barra de título. Entonces la forma realmente maximizada.

Simplemente no entiendo más, todo esto es muy confuso. Y puesto que se maximiza la windowstate no puedo usar las funciones de arrastrar la forma alrededor de la pantalla, ya que piensa que está maximizada ....

enter image description here

+2

Esos no son propiedades válidas para una ventana secundaria MDI, que * debe * tienen un borde de tamaño variable. Winforms olvida arrojar una excepción. –

Respuesta

0

Usted ha escrito "WindowState = maximizado".
Tal vez debido a esto solo vea su Formulario MDI cuando se maximice el formulario primario.
Le recomiendo que escriba "WindowState = Normal", y en Form_Load escriba "MDIForm.Size = ParentForm.Size" o (algo así).

0

Prueba este código - garantizado para trabajar:

Public frmContainer As FormContainer 
Public frmChild As FormChild 

Public Sub OpenfrmChild() 
    If Not IsNothing(frmChild) AndAlso frmChild.Visible = False Then 'This applies after form has been closed 
     frmChild = Nothing '(frmChild does not test as nothing after being closed) 
     frmChild = New FormChild 
     frmChild.MdiParent = frmContainer 
     frmChild.Show() 
    ElseIf IsNothing(frmChild) Then 'This applies the first time form is opened 
     Try 
      frmChild = New FormChild 
      frmChild.MdiParent = frmContainer 
      frmChild.Show() 
     Catch ex As Exception 
      ErrorMsg(ex.Message() & "Description: " & ex.ToString) 
     End Try 
    Else 'This applies if form is visible and user clicks the button on FormChild again 
     frmChild.BringToFront() 
    End If 
    frmChild.WindowState = FormWindowState.Maximized 
    frmChild.Dock = DockStyle.Fill 
End Sub 
Cuestiones relacionadas