¿Deshabilitar Minimizar y maximizar en WinForm?


98

WinForms tiene esos tres cuadros en la esquina superior derecha que minimizan, maximizan y cierran el formulario. Lo que quiero poder hacer es eliminar el minimizar y maximizar, manteniendo el cierre.

También hago que el cierre minimice el formulario en lugar de cerrarlo.

¿Cómo se puede hacer esto?

Respuestas:


161

El Formtiene dos propiedades llamadas MinimizeBoxy MaximizeBox, establezca ambas en false.

Para detener el cierre del formulario, controle el FormClosingevento y configúrelo e.Cancel = true;allí y, a continuación, configure WindowState = FormWindowState.Minimized;para minimizar el formulario.


1
¿No podría simplemente establecer la caja de control en falso?
krystan honor

3
@krystanhonour Sin embargo, el OP quería mantener el cierre.
Hans Olsson

16

Establecer MaximizeBoxy MinimizeBoxformar propiedades paraFalse


15

Vincule un controlador al FormClosingevento, luego configure e.Cancel = truey configure el formulario this.WindowState = FormWindowState.Minimized.

Si alguna vez desea cerrar el formulario, cree un booleano para toda la clase _closey, en su controlador, establezca e.Cancelen !_close, de modo que cada vez que el usuario haga clic Xen la ventana, no se cierre, pero aún pueda cerrarla (sin solo matándolo) conclose = true; this.Close();

(Y solo para completar mi respuesta) establecer MaximizeBoxy MinimizeBoxformar propiedades en False.


5

Haga clic derecho en el formulario en el que desea ocultarlos, elija Controles -> Propiedades.

En Propiedades, establezca

  • Caja de control -> Falso
  • Minimizar cuadro -> Falso
  • Maximizar caja -> Falso

Harás esto en el diseñador.


4

Ya se respondió cómo hacer que el formulario se minimice cuando se cierra, pero cómo eliminar los botones de minimizar y maximizar no.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false


3

simplemente puede desactivar maximizar dentro del constructor de formularios.

 public Form1(){
     InitializeComponent();
     MaximizeBox = false;
 }

minimizar al cerrar.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}

2
Por favor, añadir alguna explicación a su respuesta
mechnicov

Amigo, es muy fácil, solo hay que leer cada línea de código
Mauricio Kenny

En SO es una respuesta de baja calidad
mechnicov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.