Frage

Ich bin mit Microsoft Visual C # 2008 Express.

In meiner Hauptform, gibt es die X-Taste das Formular rechts oben zu schließen. Wie füge ich Code auf diese Taste? In meinem Menü, ich habe ein „Exit“ Element und es hat Code, der reinigt und schließt meine Datenbanken. Wie füge ich den gleichen Code auf diese Schaltfläche, wenn der Benutzer, dass als einen Weg wählt, um zu beenden?

Danke!

-Adeena

War es hilfreich?

Lösung

, um das Formclosing-Ereignis verwenden sollte in jeden Fall fängt die Form geschlossen wird.

Andere Tipps

In der Entwurfsansicht für das Formular, in dem Fenster Eigenschaften, wählen Sie die Schaltfläche Ereignisse und scrollen Sie zur „Formclosed“ und „Formclosing“ Veranstaltungen.

Formclosed wird aufgerufen, nachdem das Formular geschlossen wird.

Formclosing aufgerufen wird, bevor das Formular geschlossen wird und erlaubt Ihnen auch die Nähe zu annullieren, die Form offen zu halten:

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

Wenn Sie den Benutzer fragen wollen: „Sind Sie sicher, dass Sie tun, um diese Form schließen wollen?“, Dann verwenden FormClosing, wo Sie Cancel = True und das Formular geöffnet bleiben würde eingestellt werden.

Wenn Sie einige Ressourcen schließen mögen nur, wenn das Formular auf jeden Fall geschlossen ist, dann verwenden Sie FormClosed Ereignis.

Wenn Sie die Kontrolle über den gesamten Code sind, dann ist es Art ist von nichts. Aber was wollen Sie nicht geschehen ist, um die Ressourcen zu reinigen-up FormClosing verwenden, wenn der anderen Handler der Veranstaltung werden die Form offen zu halten.

Formclosing / Formclosed können Sie das Ereignis für das Formular sehen, die mit der Anwendung beenden zusammenfallen kann. Allerdings gibt es ein weiteres Ereignis, das Sie genannt Application.ApplicationExit verdrahten können.

Ihre Hauptmethode:

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

}
Mit

das Closed-Ereignisse Ihrer winform.

Dieser Code wird der Benutzer durch Klick auf das ‚X‘ erfassen oder mit Alt-F4 auf einem Formular, damit Sie etwas tun. Ich hatte dies zu verwenden, da die ich die Aktion brauchte, um meine Abschlussveranstaltung zu nennen, und es würde nicht nennen, wenn das Formclosing Ereignis aufgrund Rennveranstaltungen mit.

/// <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);
}

doppelklicken Sie auf die Exit-Button in form'design dann die Dispose () -Methode rufen Sie einfach

Formularaktionsmethode //

 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();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top