¿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?

sorpresa
fuente

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.

Hans Olsson
fuente
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

volody
fuente
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.

dlras2
fuente
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.

Arunkumar Pushparaj
fuente
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

Soportes
fuente
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;
}
Sameera R.
fuente
1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
Mauricio Kenny
fuente
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