Visual Basic.NET - Centrar formulario en Panel

 
Vista:
Imágen de perfil de Anibal

Centrar formulario en Panel

Publicado por Anibal (21 intervenciones) el 29/07/2021 03:42:34
Saludos cordiales, estoy iniciando en el lenguaje y diseñe un formulario principal donde ejecuto los formularios dentro de un panel, mi pregunta y agradezco desde ya su orientación, como centrar los formularios ejecutados dentro de dicho panel:
uso este procedimiento para llamar los formularios

Private Sub AbrirFormEnPanel(ByVal FormHijo As Object)

If Me.PnlContenedor.Controls.Count > 0 Then

Me.PnlContenedor.Controls.RemoveAt(0)

End If

Dim fh As Form = TryCast(FormHijo, Form)
fh.TopLevel = False
fh.FormBorderStyle = Windows.Forms.FormBorderStyle.None
fh.Dock = DockStyle.Fill
Me.PnlContenedor.Controls.Add(fh)
Me.PnlContenedor.Tag = fh
* fh.StartPosition = Windows.Forms.FormStartPosition.CenterParent
fh.Show()

End Sub

* intente con esta instrucción pero no funciona
asi llamo al procedimiento desde el boton

Private Sub BtnUsuarios_Click(sender As Object, e As EventArgs) Handles BtnUsuarios.Click
AbrirFormEnPanel(New FrmUsuarios)
End Sub

bien sabre agradecer sus buenas recomendaciones
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Centrar formulario en Panel

Publicado por Giancarlo (461 intervenciones) el 29/07/2021 06:39:55
puedes usar un paneltablelayout (o algo asi creo que se llama) o puedes usar esta funcion

1
2
3
4
5
6
7
8
9
Public Shared Function calcularCentro(padre As Size, hijo As Size) As Point
            Dim ubicacion, centro As New Point
            centro.X = padre.Width / 2
            centro.Y = padre.Height / 2
            ubicacion.X = CInt(centro.X - hijo.Width / 2)
            ubicacion.Y = CInt(centro.Y - hijo.Height / 2)
 
            Return ubicacion
        End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Anibal

Centrar formulario en Panel

Publicado por Anibal (21 intervenciones) el 29/07/2021 17:42:51
Muchas gracias Giancarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Anibal

Centrar formulario en Panel

Publicado por Anibal (21 intervenciones) el 30/07/2021 00:05:51
Saludos Giancarlo
hice la prueba en mi aplicación pero no me funciona, imagino los parámetros que paso no son los correctos
al llamar a la función le paso los size del contenedor(Padre) y de el formulario (Hijo)
ejemplo:

calcularcentro(pnlContenedor.size, frmMaeEquipos.size)

favor corrígeme si estoy en un error, agradecido por tu tiempo y la intención de ayudar
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Centrar formulario en Panel

Publicado por Giancarlo (461 intervenciones) el 30/07/2021 00:08:34
la función calcula la nueva ubicación para centrar el formulario hijo, por lo que debería ser:
1
frmMaeEquipos.location=calcularcentro(pnlContenedor.size, frmMaeEquipos.size)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Anibal

Centrar formulario en Panel

Publicado por Anibal (21 intervenciones) el 30/07/2021 02:38:38
Muchas gracias Giancarlo, funcionó !!!
Seguimos adelante disfrutando del aprendizaje y contando con la colaboración de las personas como Ud., que desea ayudar a los que iniciamos en dicho aprendizaje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Centrar formulario en Panel

Publicado por LUIS ALB ERTO DE LEON (7 intervenciones) el 30/07/2021 01:37:51
Aunque tambien soy nuevo dentro de Visual Basic encontre una propiedad del formulario que se denomina StartPosition y entre sus opciones tiene una de center screen... o center parent a mi me han funcionado. Prueba y me cuentas. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Centrar formulario en Panel

Publicado por Giancarlo (461 intervenciones) el 30/07/2021 02:04:12
Tienes mucha razón, pero son temas diferentes:

position=Centerscreen hace que el formulario hijo se ubique en el centro de la pantalla sin importar el tamaño del formulario padre
la funcion que menciono anteriormente, es para ubicar un formulario hijo en el centro del formulario padre

cuando los formularios padres estan maximizados no podrás notarlo ya que el centro es el mismo, sin embargo, supongamos que el formulario padre tiene 1/4 del tamaño de la pantalla y se ubica en la ubicación 0,0 de la pantalla, entonces notarás la diferencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar