2010-05-18 8 views
18

Cómo hacer un centro de forma de panel, incluso si se cambia el tamaño del formulario. Uso de la aplicación de Windows C#¿Cómo hacer un centro de panel de forma?

+0

¿Quieres que el panel para crecer y reducir el tamaño de la forma? ¿O para conservar su tamaño original? –

+0

@Binary Worrier, debería tener su tamaño original. Pero debe ser el centro de la forma dependiendo del tamaño de la forma. – Anuya

Respuesta

36

Coloque el panel en el centro del formulario utilizando el diseñador, y luego borre la propiedad Anchor, para que no quede anclado a ningún borde. Esto lo mantendrá centrado cuando la forma cambie de tamaño, sin cambiar el tamaño del panel.

Si, por alguna razón, tendrá que colocar el panel en el código (dependiendo de cosas que suceden durante la carga del formulario, por ejemplo) se puede hacer algo como esto:

// code for initializing the panel and setting 
// its size goes here 

_thePanel.Location = new Point(
    this.ClientSize.Width/2 - _thePanel.Size.Width/2, 
    this.ClientSize.Height/2 - _thePanel.Size.Height/2); 
_thePanel.Anchor = AnchorStyles.None; 

Eso debe tener cuidado de la mayoría de los escenarios, me imagino.

+0

Mi panel tiene muchos controles en él. Esta aplicación se ejecutará en muchos sistemas donde la resolución varía. Entonces, en ese caso, la posición del panel es diferente para diferentes sistemas. – Anuya

+0

@karthink: vea la respuesta actualizada. –

+0

¡Excelente! No tenía idea de que pudiera eliminar los anclajes por completo. –

3

establezca su propiedad Anchor en Ninguno:

this.panel1.Anchor = System.Windows.Forms.AnchorStyles.None; 
0
Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint 
    Panel1.Location = New Point(ClientSize.Width/2 - Panel1.Size.Width/2, ClientSize.Height/2 - Panel1.Size.Height/2) 
    Panel1.Anchor = AnchorStyles.None 
End Sub 
+2

Tenga en cuenta que se desaconsejan las respuestas de solo código. ¡Siempre brinde un poco de explicación al respecto! – GhostCat

Cuestiones relacionadas