Karibot
Messages postés89Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention21 juin 2016
-
27 sept. 2010 à 14:52
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 2012
-
29 sept. 2010 à 19:12
Bonjour,
j'ai un programme qui fonctionne avec une interface windows form. il fonctionne très bien sauf qu'il ne m'avertit pas lorsqu'il fini les calculs. j'essaye donc de trouver une astuce pour qu'il m'affiche un message lors que les calculs sont finis et ce n'est pas de la tarte...
ce que j'essaye de faire ce n'est pas de créer un messagebox depuis le form mais plutot de donner l'ordre depuis ma classe de lancer un messagebox ! (je ne sais pas si je suis claire !?)
je ne souhaite pas utiliser une barre de progression parce que cela me semble trop compliqué. je veux juste un message qui me dit: 'C'est bon, j'ai fini'.
pour cela j'ai utilisé 2 trucs (qui ne fonctionnent pas, pour le moment):
throw new Exception("Fin des calculs");
[code=cs]
cela me génére une exception (ce qui est normal) mais on m'a dit que cela pouvais aussi créer une boite de dialogue avec le message souhaité...
[code=cs]
throw new System.Windows.Forms.MessageBox.Show(owner, "Fin des calculs");
Karibot
Messages postés89Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention21 juin 20162 29 sept. 2010 à 12:01
Merci à vous deux pour vos réponses pertinentes.
je pousse un peu plus loin la réflexion: et si au lieu d'attendre que la tache soit finie avant d'envoyer le message de fin, je faisais autre chose en 'temps réel'? je m'explique:
mon programme traite des des mots clés, je pense faire un truc qui dit: vous avez traité k mots sur n. cela s'afficherait dans une messageBox (ou autre sans le 'OK') et défilerait en fonction de l'avancement du traitement (ex: 4/56).
faire peut-être un truc genre: System.Windows.Forms.MessageBox.Show("{0}/{1}", iCurrent, iLen);
où: iCurrent = index du mot clés courrent
et
iLen = length de mon tableau de mots clés.
Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 29 sept. 2010 à 13:26
Bonjour,
Pour une message box avec le texte qui change, cela n'est pas possible (à ma connaissance).
Il va falloir te tourner vers une solution avec une form supplémentaire pour afficher l'avancement de ta tâche. Cette form sera surement avec la propriété topmost = true pour toujours être au premier plan.
Pour suivre l'avancement, je te conseille de regarder du coté du backgroundworker qui permet de faire une tâche de manière asynchrone tout en suivant l'avancement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 20128 29 sept. 2010 à 19:12
Tout à fait d'accord avec Tilois...
Si c'est un traitement long, il ne faut pas l'appeler depuis ton formulaire directement. Autrement tu vas "frizzer" ton application.
Il vaut mieux utiliser BackgroundWorker en effet !