cs_ekke
Messages postés3Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention 5 février 2009
-
5 févr. 2009 à 10:35
cs_ekke
Messages postés3Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention 5 février 2009
-
5 févr. 2009 à 13:15
Bonjour,
Lorsque j'exécute mon programme, il y a un moment où il réalise un traiement utilisant des composants et SQL server assez lourds qui prennent presque toutes les ressources CPU.
Le problème, c'est que du coup, le Form devient blanc si on passe sa fenêtre en réduit ou en arrière plan et qu'on la remet en premier plan. Les contrôles ne se redessinent pas, et alors que du texte devrait apparaître dans une textbox du Form après chaque étape réalisée durant le traitement, rien n'apparaît.
Ce n'est qu'une fois que le traitement est terminé (les ressources CPU sont libérées) que le Form se redessine et qu'enfin le texte qui aurait du se compléter peu à peu durant le traitement apparaît au complet.
J'ai essayé le Me.refresh dans la boucle qui exécute ces traitements lourds mais ça ne fait rien. Y a-t-il un moyen pour que le Form reste actualisé et se dessine correctement ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 févr. 2009 à 12:48
Salut
En .Net, c'est Application.DoEvents
A insérer dans une éventuelle boucle (For-Next ou Do-Loop) ou deci-delà, dans ta partie gestion SQL.
La forme devient blanche car le programme ne rend pas la main au système pour gérer le graphisme.
Si le figeage a lieu lors de l'exécution d'une seule instruction, tu ne pourras rien faire, hélas.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)