Ho un WinForm che creo che mostra un prompt con un pulsante. Questa è una vista WinForm personalizzata, poiché la finestra di dialogo della finestra di messaggio non era sufficiente.Rileva quando un modulo è stato chiuso C#
Ho un lavoratore in background avviato e in esecuzione. Voglio anche uscire dal ciclo while (aBackgroundWorker.IsBusy
) se il pulsante su myForm è stato cliccato.
//MyProgram.cs
using(CustomForm myForm = new CustomForm())
{
myForm.Show(theFormOwner);
myForm.Refresh();
while(aBackgroundWorker.IsBusy)
{
Thread.Sleep(1);
Application.DoEvents();
}
}
In questo momento, in CustomForm
caso Button_clicked
, ho
//CustomForm.cs
private void theButton_Click(object sender, EventArgs e)
{
this.Close();
}
Devo aggiungere altro codice alla classe CustomForm, o la posizione in cui dichiaro e inizializzare il modulo per essere in grado di rilevare una chiusura?
Quale forma/classe vuoi di notificare alla chiusura della finestra? – Decker97
Scrivere questo codice non ha senso. Presumibilmente c'è qualcosa * dopo * questo ciclo while. Spostare quel codice sul gestore di eventi RunWorkerCompleted per tale BGW. –