J'ai conçu un pour lequel seul l'objectif est d'exécuter une méthode. Il s'agit d'un formulaire please wait
.Windows formes - attendre jusqu'à ce que le formulaire est complètement dessiné (peint)
Je lui donne un délégué et appelle le ShowDialog
. Il prend juste ce délégué et l'exécute dans l'événement Shown
. Après cela, Hide()
. Le but est uniquement d'indiquer à l'utilisateur d'attendre que le délégué soit exécuté. MAIS: Il commence à exécuter le délégué AVANT qu'il soit complètement affiché. Je veux dire, le formulaire apparaît à l'écran, mais l'étiquette please wait
est bloquée par le code courant, étant montré très tard, ou même pas montré. (Un rectangle vide reste au milieu du formulaire).
Je pourrais faire attendre deux secondes avant d'exécuter le délégué, mais y a-t-il un autre moyen (mieux et plus sûr) d'appeler le délégué APRÈS que le formulaire soit complètement peint, avec l'étiquette montrée ???
Merci.
"le formulaire apparaît à l'écran, mais l'étiquette" please wait "est bloquée par le code en cours d'exécution, étant affichée très tard, ou même pas affichée (un rectangle vide reste au milieu du formulaire)." Il semble que vous ayez besoin d'exécuter le délégué dans un ** thread séparé ** afin que le formulaire puisse s'afficher et se mettre à jour correctement. –
Appelez this.Update() avant d'exécuter le délégué. –
@Idle_Mind, le thread séparé serait-il plus lent ??? C'est du code principal lourd. –