2010-09-20 124 views
27

Cómo evitar el cambio de tamaño de la ventana de mi aplicación.C# cómo evitar que el usuario cambie el tamaño de la ventana de mi aplicación?

¿cómo puedo hacer eso?

+0

posible duplicado de [¿Cómo evito que una forma de ser redimensionada por el usuario?] (Http://stackoverflow.com/questions/1119256/how-do-i-prevent-a-form-from -being-resized-by-the-user) –

+0

posible duplicado de [¿Cómo puedo evitar que los usuarios cambien el tamaño de la ventana/formulario cuando la aplicación se está ejecutando] (http: // stackoverflow.com/questions/1330339/how-can-i-prevent-users-from-changing-the-window-form-size-when-application-is-r) – bluish

Respuesta

40

En la principal Form (o cualquier Form que no quiere ser de tamaño variable), cambie la propiedad FormBorderStyle a Fixed______ (FixedSingle, Fixed3D, FixedDialog, FixedToolWindow).

+0

Gracias. Esto funciona y es más aceptable que establecer el valor máximo para el valor mínimo y otros hacks. – Phil

+1

FixedToolWindow es especialmente "palette-able". –

5

Otra manera es definir el tamaño de su formulario y establecer el tamaño real como MinimumSize y MaximumSize a través de las propiedades.

Esto no cambia su BorderStyle y el usuario final no puede modificar el tamaño del formulario.

+4

Solución válida. Pero no me gusta cuando Windows se puede redimensionar y voy a cambiar el tamaño de ellos y no pasa nada. – colithium

1

probar esto:

Change FormBorderStyle to Fixed(Single,3D,Dialog) 
+1

Aún se puede cambiar de tamaño arrastrando los bordes. – colithium

3

Hay unos pocos de soluciones para esto:

  1. Establecer propiedad de tamaño máximo para un valor que prefiera. Si no desea que la ventana de la aplicación también se reduzca, establezca una propiedad de tamaño mínimo. Si prefiere que la aplicación tenga exactamente el mismo tamaño que el tiempo de diseño, establezca el tamaño máximo y el tamaño mínimo como el tamaño de su ventana. (Una vez que establece el tamaño máximo o el tamaño mínimo del diseñador, no puede cambiar el tamaño de la ventana mediante programación, a menos que vuelva a establecer el tamaño máximo y el tamaño mínimo por programación nuevamente)

  2. Establezca FormBorderStyle en FixedSingle o FixedDialog. La diferencia de aspecto no se notará en los ojos no entrenados, pero una diferencia considerable que encontré en mi experiencia es que, cuando lo haces FixedSingle, aún puedes cambiar el tamaño de forma programática. Con FixedDialog no es posible. Esa es una gran ventaja para la propiedad FixedSingle. (Si desea cambiar el tamaño de su ventana mediante programación aquí después de ir a FixedDialog, primero debe cambiar FormBorderStyle mediante programación, lo que crearía un ligero efecto de parpadeo al ejecutar la aplicación).

Así que simplemente vaya a FixedSingle. Y para tener sentido, haga lo siguiente:

a. Establezca maximizar la propiedad de la casilla en falso.

b. Establecer SizeGripStyle para ocultar. (@colithium señala esto)

-2

Hay un problema al encontrar estas propiedades en la versión inferior de Visual Studio, como 2008 y ResizeMode no aparece aquí.

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if (e.CloseReason == CloseReason.UserClosing) 
    { 
    e.Cancel = true; 
    this.WindowState = FormWindowState.Minimized; 
    } 
} 
+3

¿Cómo ayuda este código? – aKzenT

0

Si desea utilizar el valor por defecto FormBorderStyle, y aún así ser capaz de evitar que el usuario vuelva a dimensionar la forma, sólo tiene que establecer los MaximumSize y MinimumSize propiedades de la forma como desee.

this.MaximumSize = new Size(XX,YY); 
this.MinimumSize = new Size(X,Y); 
Cuestiones relacionadas