Optimiser ce code please

cs_ArTi Messages postés 7 Date d'inscription samedi 20 septembre 2003 Statut Membre Dernière intervention 27 octobre 2003 - 26 oct. 2003 à 18:07
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 27 oct. 2003 à 10:20
comment puis-je optimiser ce code qui est répétitif ?

If gld1.Text & bnk1.Text & plt1.Text & hlt1.Text & xp1.Text & lvl1.Text & nrj1.Text & pplat1.Text & userid1.Text & Agl1.Text & str1.Text & king1.Text & arch1.Text & wrk1.Text & trps1.Text & rnk1.Text & size1.Text & mbr1.Text & hp1.Text & kingplat1.Text = "" Then
gld1.ForeColor = Drawing.Color.Red
gld1.Text = "Error"
bnk1.ForeColor = Drawing.Color.Red
bnk1.Text = "Error"
....
....
end if

la ça me fait trop de ligne de code, je suis sur que j'peu réduire tous ça.
en faite je veux que quand la valeur est nul ( "" ) il écrive dans le label Error en rouge.

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 oct. 2003 à 18:12
ben en fait, le mieux, c'est de créer un groupe de contrôle de TextBox (même nom, mais un index différent pour chacun). et tester tes valeurs par une boucle.

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
PatDeLaYaute Messages postés 133 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 15 janvier 2009 3
26 oct. 2003 à 21:15
Salut,
voici un petite astuce :

Déclare une variable "MaVar" as integer

Puis dans tous tes textbox dans l'evenement "LostFocus" met cette fonction :

If TextBox.Text <> "" then
MaVar = MaVar + 1
Else
If MaVar > 0 then MaVar = MaVar - 1
End If

Explications :
Quand tu lance ton programme et a supposer que tous tes textbox sont vide, ta variable "MaVar" est a zéro.
Si tu rempli un Textbox, lorsqu'il perd le focus celui incrémente "MaVar".
Donc si "MaVar" = 0 alors tous tes textbox sont vides

@+
PatDeLaYaute
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
27 oct. 2003 à 10:20
Pascal Laurençon

Pour documenter un peu la méthode de Darksidious voilà à quoi cela devrais ressembler.

Private Sub TextBox_Color_Change(Index As Integer)
If Text1(Index).Text = "" Then
Text1(Index).ForeColor = vbRed
Text1(Index).Text = "ERROR"
Else
Text1(Index).ForeColor = vbBlack
End If
End Sub

Private Sub Text1_LostFocus(Index As Integer)
TextBox_Color_Change (Index)
End Sub

En gros sur le LostFocus des textbox tu vérifie par l'intermédiaire de la procédure TextBox_Color_Change si le TextBox est vide ou non et applique le traitement correspondant, l'emploi des groupes de control simplifie beaucoup le code.
0
Rejoignez-nous