Question

J'utilise Microsoft Visual C # 2008 Express.

Dans ma principale forme, il y a que le bouton X pour fermer le formulaire en haut à droite. Comment puis-je ajouter un code à ce bouton? Dans mon menu, j'ai un élément « Exit » et il a un code qui nettoie et ferme mes bases de données. Comment puis-je ajouter le même code à ce bouton si l'utilisateur choisit que comme un moyen de sortir?

Merci!

-Adeena

Était-ce utile?

La solution

Utilisation de l'événement FormClosing devrait prendre aucune façon de fermer le formulaire.

Autres conseils

Dans la vue de la conception de votre formulaire, dans la fenêtre Propriétés, sélectionnez le bouton Événements et faites défiler jusqu'à la « FormClosed » et événements « FormClosing ».

FormClosed est appelé après que le formulaire est fermé.

FormClosing est appelée avant que le formulaire est fermé et vous permet également d'annuler la fermeture, en gardant la forme ouverte:

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

Si vous voulez demander à l'utilisateur « Etes-vous sûr de vouloir faire fermer cette forme? », Puis utilisez FormClosing, où vous pouvez définir Cancel = True et la forme restent ouvertes.

Si vous voulez fermer une ressource que lorsque le formulaire est définitivement fermé, vous utilisez l'événement FormClosed.

Si vous êtes dans le contrôle de l'ensemble du code, il ne sorte de pas d'importance. Mais ce que vous ne voulez pas arriver est de nettoyer les ressources en utilisant FormClosing lorsque l'autre gestionnaire de l'événement gardera la forme ouverte.

FormClosing / FormClosed vous permet de regarder l'événement pour cette forme qui peut coïncider avec la sortie de l'application. Cependant, il y a un autre événement, vous pouvez câbler appelé Application.ApplicationExit.

Dans votre méthode principale:

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

}

Utilisez le Closed-événement de votre WinForm.

Ce code capturera l'utilisateur en cliquant sur le « X » ou en utilisant Alt-F4 sur un formulaire pour vous permettre de faire quelque chose. Je devais utiliser cela parce que je avais besoin l'action d'appeler mon événement de clôture, et il ne l'appeler lorsque vous utilisez l'événement FormClosing en raison des événements de course.

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

double-cliquez sur le bouton de sortie dans form'design puis il suffit d'appeler la méthode Dispose ()

méthode d'action Form //

 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();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top