c# - ventana - Windows Forms: cómo ocultar el botón Cerrar(x)?
formclosing c# (7)
Bueno, puedes ocultar el botón Cerrar cambiando el FormBorderStyle de la sección de propiedades o programáticamente en el constructor usando:
public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
}
luego creas un elemento de tira de menú para salir de la aplicación.
aclamaciones
Tengo un diálogo modal y necesito ocultar el botón Cerrar (X), pero no puedo usar ControlBox = false
, porque necesito mantener los botones Minimizar y Maximizar.
Necesito ocultar solo el botón Cerrar, ¿hay alguna manera de hacerlo?
¡Muchas gracias!
Actualización: tenía permiso para desactivarlo, lo cual es más simple :) ¡Gracias a todos!
Bueno, puedes ocultarlo, eliminando todo el menú del sistema:
private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~WS_SYSMENU;
return cp;
}
}
Por supuesto, al hacerlo, se eliminan los botones minimizar y maximizar.
Si conserva el menú del sistema pero elimina el elemento de cierre, el botón de cerrar permanece pero está desactivado.
La última alternativa es pintar el área no cliente usted mismo. Eso es bastante difícil de hacer bien.
En las propiedades de su formulario, establezca ''Caja de control'' = False, pero también se ocultará Minimized y Maximize.
No puede ocultarlo, pero puede deshabilitarlo anulando la propiedad CreateParams del formulario.
private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
get
{
CreateParams myCp = base.CreateParams;
myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON ;
return myCp;
}
}
Podemos ocultar el botón de cerrar en el formulario estableciendo this.ControlBox=false;
Si realmente desea ocultarlo, como en "no visible", entonces probablemente tendrá que crear una forma sin márgenes y dibujar los componentes de título usted mismo. La biblioteca VisualStyles tiene los elementos de Windows disponibles. También debería volver a agregar la funcionalidad de cambiar el tamaño del formulario o mover el formulario tomando la barra de título. Por no mencionar el menú del sistema en la esquina.
En la mayoría de los casos, es difícil justificar que el botón "cerrar" no esté disponible, especialmente cuando se quiere un formulario modal con capacidades de minimización. Minimizar una forma modal realmente no tiene sentido.
si esta es una opción, puede configurar
this.FormBorderStyle = FormBorderStyle.None;
luego recrear los botones minimizar y maximizar
private void button1_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
}
private void button2_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}