2011-02-24 9 views

Respuesta

27

tiene dos opciones, de la siguiente manera:

  • Para retirar el rumbo y las fronteras de un formulario, desactive la propiedad del formulario FormBorderStyle.

  • Establecer el interior de la forma con la propiedad ClientSize, de la siguiente manera:

    this.ClientSize = new Size(300, 300); 
    
+0

Por lo tanto, no es posible establecer clientSize en el diseñador, ¿verdad? Solo necesito una ventana que sea de 300x300 EXCLUYENDO bordes y encabezado – Mocco

+0

Correcto, no parece haber ninguna manera de configurar esto en el diseñador. Sin embargo, siempre puede configurar esto en el evento Cargar o Pintar y el usuario nunca sabrá la diferencia. – Yetti

+1

Para agregar a mi último comentario, es mejor hacerlo en el evento Load porque ocurre una vez en Load, mientras que Paint ocurre muchas veces durante la ejecución, por lo que realmente no tiene sentido reiniciar el tamaño del cliente cada vez que se envía el formulario. pintado. – Yetti

7

Por qué no sólo factor en el tamaño de la frontera y la barra de título?

int BorderWidth = (this.Width – this.ClientSize.Width) /2; 
int TitlebarHeight = this.Height – this.ClientSize.Height – 2 * BorderWidth; 

He encontrado las fórmulas here.

+0

this.ClientSize da el tamaño sin bordes. Puede que esto no sea lo que OP pide, pero ciertamente es lo que necesitaba. – user1032613

5

Hay una solución para establecer el tamaño adecuado por herramienta de diseñador: 1. Establezca FormBorderSize en "Ninguno". 2. Establezca el tamaño preferido (por ejemplo, "300; 300"). 3. Establezca FormBorderSize en el borde preferido (el espacio adicional necesario se agregará a la propiedad Tamaño automáticamente).

+0

No sé cómo funciona en su vs2010 pero en vs2005 funciona con seguridad. –

Cuestiones relacionadas