Alors voilà, dans mon programme lorsque je clique sur le bouton Telecharger le texte du label devient "Telechargement en cours" et lorsque que je clique sur le bouton Pause/Reprendre il devient "Telechargement en pause" mais lorsque je reclique sur ce meme bouton le texte ne change pas alors qu'il devrait devenir "Telechargement en cours".
Voilà ce que j'ai ecris au debut de ma fonction Telecharger :
label3.Text="Téléchargement en cours";
label3.ForeColor = System.Drawing.Color.Red;
Mais si à la place j'ecris :
MessageBox.Show("Telechargement");
label3.Text="Téléchargement en cours";
label3.ForeColor = System.Drawing.Color.Red;
alors la message box s'affiche et le label change bien de texte !? Je n'y comprends rien.
Avez vous une idée svp ? (Promis apres j'arrete de vous emmerder ! )
De rien !
En fait, un label et tout autre Control d'ailleurs se rafraichit "quand il a le temps". Comme la méthode Refresh appartient à la classe UserControl, on peut sans autre l'appeler pour n'importe quel contrôle (puisqu'ils dérivent tous de UserControl), pour forcer le refresh dudit contrôle...
On peut aussi agir à un niveau plus élevé, en appelant Application.DoEvents() pour traiter tous les messages qui sont encore dans la "queue".
On s'aperçoit facilement du résultat avec le petite morceau de code suivant :