ptit_tof57
Messages postés79Date d'inscriptionlundi 28 août 2006StatutMembreDernière intervention 4 avril 2009
-
16 janv. 2008 à 19:08
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023
-
18 janv. 2008 à 09:09
Bonjour,
Je dispose d'une petite application qui se connecte vers
une base de données et effectue une requete.
Le traitement de cette requete
doit etre fluide, donc j'ai décidé d'utiliser le composant
backgroundworker.
Voici en gros comment se déroule la logique du
bouton de recherche :
- affichage d'un message
pour patienter ( Un deuxieme formulaire composé seulement d'un label)
-
ouverture de la connexion vers la base de données
- execution de la
requete
- fermeture de la connexion
(Tout ceci s'effectue dans
la procédure DoWork de mon backgroundworker.)
Mon
probleme est que j'essaie d'inscrire l'avancement de cette requete dans le
deuxieme formulaire sur la propriété text du label (celui du message d'attente)
mais les informations ne sont pas prise en compte.
Par contre si je
positionne un label sur le formulaire principal, j'ai bien la posibilité de
modifier le texte de celui-ci tout au long de ma requete.
Je pense
qu'il y a un soucis entre thread principal et secondaire mais j'ai un peu de mal
a saisir quel en est la cause exactement.
Je vous remercie d'avance pour
votre aide.
Christophe.
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023159 18 janv. 2008 à 09:09
Bonjour
2 proposition :
1) voir la valeur de form2.label1.InvokeRequired, True, tu dois utiliser l'invocation.
2) Utiliser un attribut privé dans form1 et avec un Timer mettre cette valeur dans From2.Label1.Text.
note : évite les noms par défaut.
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site