VB.net Probléme avec les IF

Pitoux78 Messages postés 16 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 29 mars 2007 - 2 mars 2006 à 20:59
FredDorine Messages postés 6 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 16 décembre 2011 - 13 avril 2011 à 08:35
Bonjour,

Je suis THE débutant en VB.NET
Je n'arrive pas a comprendre pour cette instruction ne fonctionne pas :

Private
Sub TextBox1_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.TextChanged



If TextBox1.Text
Or TextBox2.Text = ""
Then Button1.Enabled =
False
End
If



If TextBox1.Text
And TextBox2.Text <> ""
Then Button1.Enabled =
True



End
If

Merci

13 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 mars 2006 à 21:07
Quand dans un If tu mets l'instruction suivant le Then sur la même ligne que le If, il ne faut pas mettre de End If. En gros, soit tu fais ....
If TextBox1.Text Or TextBox2.Text "" Then Button1.Enabled False

If TextBox1.Text And TextBox2.Text <> "" Then Button1.Enabled = True

... soit tu fais ...

If TextBox1.Text Or TextBox2.Text = "" Then
Button1.Enabled = False
End If

If TextBox1.Text And TextBox2.Text <> "" Then
Button1.Enabled = True
End If

Christophe R
0
Pitoux78 Messages postés 16 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 29 mars 2007
2 mars 2006 à 21:22
Merci pour ta réponse rapide.
Je viens de tester mais cela ne fonctionne pas.

Tiens regarde je viens de mettrele projet en ZIP ici

http://www.pitoux.com/Win.zip

Merci a toi
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 mars 2006 à 21:31
µJ'ai corrigé la syntaxe ... mais pas le fond de ton code ...
Tes tests ne veulent pas dire grand chose !?
Expliques nous le comportement exact attendu et on verra ce que l'on peut faire ...

Christophe R
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
2 mars 2006 à 21:33
Pour mi cela marche lorsque qu tu changes dans textbox1 est changé
Tu rajoutes
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
TextBox1_TextChange(sender,e)
End Sub

comme ça cela génère l'évenement du textbox1.changed

Ou plus propre
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TestTextbox()

end sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
TestTextbox()
end sub

Private sub TestTextBox() If TextBox1.Text Or TextBox2.Text "" Then Button1.Enabled False
If TextBox1.Text And TextBox2.Text <> "" Then Button1.Enabled = True
End sub

Il n'y a pas redondance dans tes conditions if
Une devrait suffire If TextBox1.Text And TextBox2.Text <> "" Then Button1.Enabled True Else Button1.Enabled False



Juste faites-le
0

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

Posez votre question
Pitoux78 Messages postés 16 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 29 mars 2007
2 mars 2006 à 21:33
Est bien je souhaite que si le champ TextBox1.Text ou TextBox2.Text son vide,
le boutton qui doit faire un calcul soit grisé.

Par contre si les 2 textbox son compléte. Dans ce cas, le boutton est fonctionnel
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 mars 2006 à 21:40
OK alors ce n'est pas
If TextBox1.Text And TextBox2.Text <> ""
mais
If TextBox1.Text <> "" And TextBox2.Text <> ""

Il faut mettre l'opérateur de comparaison à chaque fois
Mais tu n'as pas besoin de deux If pour cela. Tu peux simplement mettre cette ligne à la place

Button1.Enabled = ((TextBox1.Text<>"") And (TextBox2.Text <> ""))

J'ai içi rajouté des parenthèses autour de chaque test pour que ce soit plus lisible.

Christophe R
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 mars 2006 à 21:41
Bonjour

Je tien quand meme a faire une petit precision qui n'a pas faite
On peux tres bien faire le deux methode en une seul If TextBox1.Text Or TextBox2.Text "" OrElse TextBox1.Text And TextBox2.Text "" Then
Button1.Enabled = True
End If

Enfin bon sa doit etre un style dans ce genre là :p
http://www.troxsa.info/Code VB.net
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 mars 2006 à 22:01
Troxsa < "OrElse" !! Ca existe en VB ca !?

Christophe R
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 mars 2006 à 22:19
Ben oui MSDN :) :)
result = expression1 OrElse expression2

Une opération logique est dite de court-circuit si le code compilé
peut ignorer l'évaluation d'une expression en fonction du résultat d'une autre
expression. Si le résultat de la première expression évaluée détermine le
résultat final de l'opération, il n'y a pas besoin d'évaluer la seconde
expression, car elle ne peut pas changer le résultat final. Un court circuit
peut améliorer les performances si l'expression ignorée est complexe, ou si elle
implique des appels de procédure.

Exemple
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

(C'est nouveau non ? )
http://www.troxsa.info/Code VB.net
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 mars 2006 à 22:38
Ouais ! Ben on en apprend tous les jour hein !!
Toujorus est-il que dans son, cas, cela n'est pas utile

Christophe R
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 mars 2006 à 22:59
Certe :) mais c'est toujours utile de ce servire OrEsle :) quand on a pas mal de conditions qui doivent entrer en jeux, en tout cas c'est relativement efficace !

@+

http://www.troxsa.info/Code VB.net
0
Pitoux78 Messages postés 16 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 29 mars 2007
3 mars 2006 à 09:51
Ok il faut donc faire une verification a chaque élément.
Merci pour votre aide :)
0
FredDorine Messages postés 6 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 16 décembre 2011
13 avril 2011 à 08:35
If "expression"=value Or "autre expression"=value
then..?

ça marche..!

n'oubliez jamais que l'intelligence artificielle se comporte comme les militaires, si on oublie de leur dire où aller ils y vont quand meme mais ils n'arrivent nullepart.

Bonne journée à tous..!


non novae sed nova... (rien de nouveau sauf dans la manière)
0
Rejoignez-nous