Ecriture instantanée dans un label

Résolu
vool - 14 mai 2013 à 11:53
 vool - 21 mai 2013 à 13:37
Bonjour, je suis étudiant en GEII et je suis actuellement en stage.
J'ai un problème dans mon programme.

A un certain moment dans mon programme, je dis de faire des écritures dans des labels.

Mon problème est que mon programme exécute les lignes où je demande d'écrire

Mais dans mes labels les écritures ne s'affichent pas instantanément mais que plus tard.

Je demande votre aide pour m'aider à résoudre ce défaut

Merci
 While i <= j
                                Select Case lignegroupe1(i)
                                    Case 1
                                        dataArray0(0) = True
                                        Label10.Text &= "G1 "
                                    Case 2
                                        dataArray0(2) = True
                                        Label10.Text &= "G2 "
                                    Case 3
                                        dataArray0(4) = True
                                        Label10.Text &= "G3 "
                                    Case 4
                                        dataArray0(6) = True
                                        Label10.Text &= "G4 "
                                    Case 5
                                        dataArray2(0) = True
                                        Label10.Text &= "G5 "
                                    Case 6
                                        dataArray2(2) = True
                                        Label10.Text &= "G6 "
                                    Case 7
                                        dataArray2(4) = True
                                        Label10.Text &= "G7 "
                                    Case 8
                                        dataArray2(6) = True
                                        Label10.Text &= "G8 "
                                    Case Else
                                        MsgBox("Erreur groupe +, veuillez corriger l'erreur")
                                        RS232.Write("QUIT" + Chr(10))
                                        Exit Sub
                                End Select
                                i += 1
                            End While

6 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
14 mai 2013 à 12:55
Bonjour,

Il faut mettre en pause l'execution pour permettre le rafraichissement, avec un DoEvents par exemple.

En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
3
Profil bloqué
18 mai 2013 à 10:46
salut
après le End Select mettre un Label10.Refresh()
pour rafraichir le contenu du contrôle Label

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2013 à 10:59
Bonjour,
Ecrire dans un label pendant l'exécution d'une boucle rapide n'est que très rarement justifié.
- Un tel procédé peut l'être dans certains cas : pour "suivre" visuellement une bonne exécution, mais alors : uniquement en tests et, pour qu'il soit réellement utile, en le ralentissant (pour avoir le temps de lire).
- il est de toutes manières (avec ou sans pause forcée) toujours ralentisseur.
Question, donc : à quoi te sert cet affichage ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
18 mai 2013 à 11:45
Salut ucfoutu,

RS232 indique l'utilisation d'un serial port. Il est donc possible d'afficher quelque chose. Mais il y a trop peu de code pour se faire une idée du problème. Cette boucle pourrait être évitée.
Je penche sur une mauvaise conception du code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 mai 2013 à 11:49
Pour résumer, en .NET, quand on se voit forcé d'utiliser l'instruction DoEvents ou Control.Refresh, la conception du code est à revoir.
0
Merci beaucoup pour vos réponses
0
Rejoignez-nous