.NET Winform modulo personalizzato - ha bisogno di tornare DialogResult o in qualche modo prevenire eventi asincroni
-
02-10-2019 - |
Domanda
Ho una forma che richiama un form figlio personalizzato. Il form figlio è fondamentalmente una finestra di popup che ottiene alcuni dati dell'utente.
Voglio che il form padre per elaborare informazioni restituite dalla forma del bambino.
Il problema è che il form padre sta chiamando il Bambino, e non è in attesa di una risposta.
Idealmente, vorrei fare la forma Bambino restituire un DialogResult. Funzionalmente, questo è chiaro quello che sta succedendo (tanto più che l'utente ha la possibilità di annullare il controllo figlio) e sembra un modo semplice per costringere il genitore ad aspettare. Non ho capito come fare questo però.
Il problema secondario è, il ricavato controllo padre oltre l'evento childDialog.Show (), e tenta di elaborare informazioni del controllo del bambino. Il che non è stato ancora modificato.
Impostazione di una condizione utilizzando valori pubblici del controllo del bambino, come ad esempio childDialog.UserClickedOK, non fare una cosa per aiutare, in quanto i valori di default sono ancora in vigore.
Che cosa sto trascurando?
Grazie a tutti! :)
Soluzione
Hai bisogno di mostrare la forma modale, utilizzando ShowDialog invece di Show. All'interno del vostro form figlio, si imposta il DialogResult a tutto ciò che rende più senso data l'interazione con l'utente che è accaduto prima.