Pregunta

Estoy utilizando Microsoft Visual C # 2008 Express.

En mi forma principal, hay que botón X para cerrar el formulario en la parte superior derecha. ¿Cómo puedo añadir código a este botón? En mi menú, que tiene un elemento "Salir" y tiene código que se limpia y se cierra mis bases de datos. ¿Cómo agrego el mismo código a este botón si el usuario decide que como una manera de salir?

Gracias!

-Adeena

¿Fue útil?

Solución

Uso del Evento FormClosing deben detectar cualquier forma de cerrar el formulario.

Otros consejos

En la vista Diseño para el formulario, dentro de la ventana Propiedades, seleccione el botón Eventos y baje hasta la FormClosing eventos "" "FormClosed" y.

FormClosed se llama después se cierra el formulario.

FormClosing se llama antes se cierra el formulario, y también le permite cancelar el cierre, manteniendo la forma abierta:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}

Si desea pedir al usuario "¿Está seguro que desea hacer cerca de esta forma?", A continuación, utilizar FormClosing, donde se puede establecer Cancel = True y la forma se mantiene abierto.

Si desea cerrar algún recurso sólo cuando el formulario se cierra definitivamente, a continuación, utiliza evento FormClosed.

Si usted está en control de todo el código, entonces es como que no importa. Pero lo que no quiere que suceda es a la limpieza de los recursos utilizando FormClosing cuando el otro manejador del evento mantendrá la forma abierta.

FormClosing / FormClosed le permite ver el evento de esa forma que puede coincidir con la aplicación de salir. Sin embargo, hay otro caso se puede cablear llamada Application.ApplicationExit.

En el método Main:

Application.ApplicationExit += Application_ApplicationExit;

...

private static void Application_ApplicationExit(object sender, EventArgs e) {

  // do stuff when the application is truly exiting, regardless of the reason

}

Utilice la Cerrado-evento de su WinForm.

Este código se captura el usuario haga clic en la 'X' o el uso de Alt-F4 en un formulario para permitir que hagas algo. Tuve que usar esto porque la necesitaba la acción para llamar a mi acto de clausura, y no diría que es cuando se utiliza el Evento FormClosing debido a eventos de carreras.

/// <summary>
/// This code captures the 'Alt-F4' and the click to the 'X' on the ControlBox
/// and forces it to call MyClose() instead of Application.Exit() as it would have.
/// This fixes issues where the threads will stay alive after the application exits.
/// </summary>
public const int SC_CLOSE = 0xF060;
public const int WM_SYSCOMMAND = 0x0112;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
    if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
        MyClose();

    base.WndProc(ref m);
}

doble clic en el botón de salida en form'design entonces simplemente llamar al método Dispose ()

método de acción Formulario //

 protected override void OnFormClosing(FormClosingEventArgs e)

          {
          base.OnFormClosing(e);

          if (e.CloseReason == CloseReason.WindowsShutDown) return;

               switch (MessageBox.Show(this, "Are you sure you want to exit?", "Exit", MessageBoxButtons.YesNo))
                     {
                       case DialogResult.No:
                           e.Cancel = true;
                           break;
                     default:
                          break;
                     }
         }
 You can use form closing events choose or set closing event in  properties window      
 You can add dialog conditions based on what task you want to perform before closing form

private void Form1_FormClosing(object sender,FormClosingEventArgs e)
{
Application.Exit();
//you can also use Application.ExitThread();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top