Qual è il modo migliore per chiamare un metodo giusto, dopo un modulo viene caricato?
-
23-10-2019 - |
Domanda
Ho un'applicazione C # su Windows Form. Il modo in cui ho attualmente da esso istituito, quando Form1_Load () gestisce i controlli per i dati non salvati recuperati e se trova un po 'si chiede all'utente se vogliono aprire i dati. Quando il programma viene eseguito funziona bene, ma la finestra di messaggio viene visualizzato subito e il modulo di programma principale (Form1) non mostra fino a dopo il sì utente fa clic o no. Vorrei che il Form1 a pop-up prima e poi il prompt finestra di messaggio.
Ora per aggirare questo problema prima ho creato un timer nella mia forma, avviato il timer nel metodo Form1_Load (), e poi eseguito il controllo e l'utente pronta nel primo timer Tick evento. Questa tecnica risolve il problema, ma è sembra che ci potrebbe essere un modo migliore.
voi ragazzi avete qualche idea migliore?
Edit: Credo che ho usato anche un lavoratore di fondo di fare qualcosa di simile. Sembra proprio un pò goffo di passare attraverso tutti i problemi di invocare il metodo per tornare al thread modulo e tutte quelle stronzate solo per avere lo ritardato un paio di millesimi di secondo!
Soluzione
Vorrei usare Form1_Shown ()
Altri suggerimenti
Utilizzare il Visibile evento . Sembra per soddisfare quello che ti serve, e visualizzerà solo la prima volta viene mostrata la forma.
Form f1 = new Form();
f1.Shown += new EventHandler(f1_Shown);
public void f1_Shown(object sender, EventArgs e)
{
// Show dialog in here
}
Prova l'evento "mostrata":
-
Utilizzando un Windows.Forms.Timer è una buona, stabile, ben noto, e di facile comprensione tecnica per fare quello che vuoi. Vorrei evitare qualsiasi altro oggetto del timer.
-
evento
Shown
del modulo funziona bene. -
sovraccarico / override del metodo
Show
. (La mia tecnica preferita per il controllo maggiore.) In questo metodo, mi avrebbe fatto il controllo necessario. Quando si è pronti, che chiamerei il metodobase.Show
, quindi fare qualsiasi altra elaborazione, come ad esempio le finestre di messaggio, prompt, la registrazione, o qualsiasi altra cosa.