¿Deshabilitar Minimizar y Maximizar En WinForm?


Los WinForms tienen esas tres cajas en la esquina superior derecha que minimizan, maximizan y cierran el formulario. Lo que quiero ser capaz de hacer es eliminar el minimizar y maximizar, manteniendo el cierre.

También qué hacer para que el cierre minimice la forma en lugar de cerrarla.

¿Cómo se puede hacer esto?

Author: Tshepang, 2010-06-12

6 answers

El Form tiene dos propiedades llamadas MinimizeBox y MaximizeBox, ambas a false.

Para detener el cierre del formulario, maneje el evento FormClosing, y establezca e.Cancel = true; allí y después de eso, establezca WindowState = FormWindowState.Minimized;, para minimizar el formulario.

 133
Author: Hans Olsson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-11 20:31:17

Enlaza un controlador al evento FormClosing, luego establece e.Cancel = true y establece la forma this.WindowState = FormWindowState.Minimized.

Si alguna vez quieres cerrar el formulario, haz un booleano para toda la clase _close y, en tu controlador, establece e.Cancel a !_close, de modo que cada vez que el usuario haga clic en X en la ventana, no se cierre, pero aún puedes cerrarlo (sin simplemente matarlo) con close = true; this.Close();

(Y solo para completar mi respuesta) establece MaximizeBox y MinimizeBox propiedades de formulario a False.

 15
Author: dlras2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-11 20:26:40

Establecer MaximizeBox y MinimizeBox propiedades de formulario a False

 11
Author: volody,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-23 20:42:44

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

En Propiedades, establezca

  • Caja de control - > False
  • Minimizar Box - > False
  • Maximize Box - > False

Lo harás en el diseñador.

 3
Author: Arunkumar P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-24 12:45:21

Simplemente puede deshabilitar maximizar dentro del constructor de formulario.

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

Minimizar al cerrar.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}
 1
Author: Sameera R.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-05 05:05:50

Cómo hacer que la forma de minimizar al cierre fue contestado ya, pero, ¿cómo eliminar los botones minimizar y maximizar no.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox: false

 1
Author: Brackets,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-27 06:05:41