Come faccio ad aggiungere il codice per il pulsante di uscita in un modulo C #?

StackOverflow https://stackoverflow.com/questions/904345

  •  05-09-2019
  •  | 
  •  

Domanda

Sto utilizzando Microsoft Visual C # 2008 Express.

Nella mia forma principale, c'è quel pulsante X per chiudere il modulo in alto a destra. Come faccio ad aggiungere il codice per questo pulsante? Nel mio menù, ho una voce "Exit" e ha il codice che pulisce e chiude le mie basi di dati. Come faccio ad aggiungere lo stesso codice per questo pulsante se l'utente sceglie che come un modo per uscire?

Grazie!

-Adeena

È stato utile?

Soluzione

utilizzando l'evento FormClosing dovrebbe prendere alcun modo di chiudere il modulo.

Altri suggerimenti

Nella visualizzazione struttura per il modulo, all'interno della finestra delle proprietà, selezionare il pulsante Eventi e scorrere fino alla "FormClosed" e gli eventi "FormClosing".

FormClosed viene chiamato dopo il form viene chiuso.

FormClosing viene chiamato prima che il modulo è chiuso e permette anche di annullare la chiusura, mantenendo la forma aperta:

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

Se si vuole chiedere all'utente "Sei sicuro di voler fare vicino questa forma?", Quindi utilizzare FormClosing, dove è possibile impostare Cancel = True e la forma dovrebbe rimanere aperta.

Se si desidera chiudere una risorsa solo quando il modulo viene definitivamente chiuso, quindi si utilizza evento FormClosed.

Se si è in controllo di tutto il codice, allora che tipo di non importa. Ma quello che non vuoi che accada è quello di ripulire le risorse utilizzando FormClosing quando l'altra gestore della manifestazione manterrà la forma aperta.

FormClosing / FormClosed ti permette di guardare l'evento per quella forma che può coincidere con l'applicazione di uscire. Tuttavia, c'è un altro evento è possibile cablare chiamato Application.ApplicationExit.

Nel metodo 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

}

Utilizzare la Closed-evento della vostra homepage.

Questo codice catturare l'utente fa clic sulla 'X' o usando Alt-F4 su un modulo per consentire di fare qualcosa. Ho dovuto usare questo perché l'avevo bisogno l'azione di chiamare il mio evento di chiusura, e non la chiamerei quando si utilizza il FormClosing evento a causa di eventi di corsa.

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

fare doppio clic sul pulsante di uscita in form'design poi è sufficiente chiamare il metodo Dispose ()

metodo di azione Modulo //

 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();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top