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!

È stato utile?

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":

Form .Show evento

  • 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 metodo base.Show, quindi fare qualsiasi altra elaborazione, come ad esempio le finestre di messaggio, prompt, la registrazione, o qualsiasi altra cosa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top