cs_jimmy69
Messages postés778Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention27 novembre 2008
-
28 juil. 2006 à 11:02
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
31 juil. 2006 à 22:27
Bonjour,
J'utilises vb net avec visual studio 2003 et je fais du win form depuis peu !
Sur ma form principale j'ai plusisuers textbox qui sont controles lors du clic sur un bouton save par cette commande :
if txtSrv.txt "" Or txtAdress.txt "" or ...etc ... car 6 txtbox a controles
je check donc chaque controle et si celui ci est vide je fais un :
MsgBox ..
J'aimerais juste savoir si il n'y a pas une methode plus pratique pour controler plusieurs textbox !?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 28 juil. 2006 à 13:21
Bonjour,
Est- ce que la pripriété 'CauseValidation' de ton bouton est à false ?
Excusez-moi si j' ai dis une connerie car je suis sous VB6, et je ne sais pas comment ça fonctionne en VS2003.
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 28 juil. 2006 à 13:42
C'est que les fonctions isEmpty et IsNull n'existent pas sour VS2003. Tu dois avoir le moyen de tester si la valeur est nulle.
Ton champ doit contenir une valeur Nulle, ce qui est différent de cn.text = "". Le test renvoie donc True. A toi de trouver la fonction
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 28 juil. 2006 à 15:14
Re bonjour,
Si le problème persiste essayes plûtot ça
Sub BtnSave_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles BtnSave.Click
Dim
cnt
As
Control
Dim ChampVide as Boolean
ChampVide = false
For
Each
cnt
In
Me
.Controls
If
TypeOf
cnt
Is
TextBox
Then
'Il faut voir si c' est pas If
TypeOf Is "TextBox"
If
cnt.Text = ""
Then
cnt.Setfocus 'se positionner sur le control qui a posé problème
ChampVide =True
Exit For 'Forcer la sortie de la boucle pour
traiter l' erreur courante
End
If
End
If
Next
cnt
If ChampVide =True Then
MsgBox("Valeur nulle non autorisée "
End if
End
Sub
Petite remarque:
Il faut éviter d' insérer des message dans une boucle car si les 4 champs étaient vide tu auras 4 messages d' erreur.
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 28 juil. 2006 à 15:22
Merci pour votre dextérité, cher Chaibat05.
Le problème pour lui est que le teste renvoie False au lieu de True, donc il ne rentre pas dans le If. Après l'action à faire (msgbox ou mettre true dans une variable), c'est un détail
La question est, quelle est la syntaxe pour tester la valeur nulle ?
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 28 juil. 2006 à 15:52
Si tu avais lu un peu plus haut, tu aurais vu que la fonction IsNull() ne fonctionne pas. Si la fonction marche chez toi en .net et pas chez lui, alors je n'ai pas de solution.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 28 juil. 2006 à 16:07
Alors essayes If TypeOf (cnt) is TexteBox Then
Il ne faut pas s' entêter et camper dans ses convictions.
TypeOf est une fonction et comme dans toutes les fonctions ,
les arguments sont entre parenthèses.
Si le teste bloque au niveau de if, il faut envisager
toutes
les possibilités à ce niveau.
D' autre part la valeur par défaut d' un TextBox est "" et non Null.
Un TextBox ne prend jamais Null, même s' il est vide.
Quand au "détail" comme tu dis, c' est avec ces p'tits détails quand optimise un code.
Et sois cool et détends-toi.!
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 28 juil. 2006 à 16:12
Le problème ne vient pas de if là, c'est le suivant
En fait, le principal intéressé ne répond plus, alors on parle dans le vide. Il faut lui demander directement, on parle à sa place. Mais aux dernières nouvelles, la syntaxe TypeOf n'est pas un problème et fonctionne
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 28 juil. 2006 à 16:57
Ne te fache pas cher tri_yann !
On est tous interessé du moment ou on accepté de répondre.
C' est avec ses échanges qu' on apprend
.
Personnellement j' aime bien qu' on me corrige.Quand je répond
j' attend toujours de savoir si j' ai raison ou tord.Sait-on jamais,
ce que nous sommes entrain de débattre pourra nous servir un jour.
Enfin, tu as raison sur un point:Il doit nous répondre si ça marche
ou pas parce que c' est lui qui teste.
cs_jimmy69
Messages postés778Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention27 novembre 20081 31 juil. 2006 à 10:57
salut salut a tous,
oui je vous reponds ..mais laissez moi du temps car je usis pas programmeur !
je bidouille chez moi tranquillou de temps en temps :-)!C'est pas mon activite professionnelle meme si j'aurais bien aime :-)
bon, alors voila ce que j'ai fait mais ca ne va toujours pas :
'Contorle des textbox
Dim cnt
As Control
Dim ChampVide
As
BooleanChampVide =
False
For
Each cnt
In
Me.Controls
If
TypeOf cnt
Is TextBox
Then
'Il faut voir si c' est pas IfTypeOf Is "TextBox"
If cnt.Text = ""
Then
'se positionner sur le control qui a posé problèmeChampVide =
True
Exit
For
'Forcer la sortie de la boucle pour
'traiter(l) ' erreur courante
End
If
End
If
Next cnt
If ChampVide =
True
ThenMsgBox("Valeur nulle non autorisée ")
End
If
J'ai beau essayer avec if typeof(cnt) as TextBox
ca ne va pas !!!
Mais ne vous fachez pas les gars cool !
Sois je passe par un multiple if ..ou si vous avez d'autres idees je suis preneur !
ne m'en voulez pas si je tarde a repondre car comme je disais plus haut je suis pas informaticien !
cs_jimmy69
Messages postés778Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention27 novembre 20081 31 juil. 2006 à 13:08
Salut a tous,
Je viens de copier coller le code ci dessus dans une nouvelle application vb net et ca fonctionne !!! maintenant je pense que le code de :
doit fonctionner aussi dans cette nouvelle application !
Maintenant si je colle le code ci dessus dans mon application et que je clique sur le bouton qui est bien en click
Private
Sub BtnSave_Click
et bien y'a rien qui se passe oui oui rien du tout !
maintenant cela ne viendrait il pas parce j'ai un text box en :read only
Je vais y regarder de plus prets et j'aimerais vous remercier pour la patience et pour vos bouts de code !