Controle de multiple textbox !? [Résolu]

cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 11:02 - Dernière réponse : chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention
- 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 !?

Je vous remerecie !
Bonne journée
Christophe
Afficher la suite 

Votre réponse

21 réponses

Meilleure réponse
crocejf2000 260 Messages postés lundi 27 janvier 2003Date d'inscription 27 août 2008 Dernière intervention - 31 juil. 2006 à 12:20
3
Merci
Private



Sub
Button1_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button1.Click


         'déclaration des varibles







         Dim
cTempControl

As
Control



         Dim
bEmpty

As



Boolean






         'on parcours tout les controles des la form







         For



Each
cTempControl

In



Me
.Controls


                  'on regarde si le control en question est une textbox







                  If



TypeOf
cTempControl

Is
TextBox

Then






                           'on test si il est vide ou non


                           bEmpty = (




CType
(cTempControl, TextBox).Text = "")




                           



'si vide on fait le traitement






                           



If
bEmpty

Then






                           



'information utilisateur



                           



MsgBox("Valeur nulle non autorisée", MsgBoxStyle.Information)



                           



'redonner le focus au control vide






                           



CType
(cTempControl, TextBox).Focus()




                           



'sortir de la boucle
                  
Exit



For






            End



If






      End



If






   Next
cTempControl


'on peut récuperer ici bEmpty pour d'autre traitement






End



Sub



A+,Hart

Merci crocejf2000 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de crocejf2000
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 28 juil. 2006 à 11:08
0
Merci
Bonjour essai ca,



Dim cnt as Control



For each cnt in me.controls
   If TypeOf cnt is TextBox then
      if cnt.Value = "" then
         MsgBox "Vous n'avez pas rempli " & cnt.name
      end if
   end if
next cnt



   
Commenter la réponse de tri_yann
crocejf2000 260 Messages postés lundi 27 janvier 2003Date d'inscription 27 août 2008 Dernière intervention - 28 juil. 2006 à 11:13
0
Merci
Salut,


tu peut meme rajouter :


cnt.Focus() juste après ton message pour redonner la main a l'utilisateur au bon endroit.

A+,Hart
Commenter la réponse de crocejf2000
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 11:24
0
Merci
salut les gars,

merci deja pour votre rapidite !

C'est a quoi je pensais mais je voyais pas comment l'implementer ..:-( !

Je vous dit quoi cet ap midi!

Christophe
Commenter la réponse de cs_jimmy69
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 11:57
0
Merci
re,

voila ce que j'ai fait :

Private

Sub BtnSave_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles BtnSave.Click

Dim cnt
As Control

For
Each cnt
In
Me.Controls

If
TypeOf cnt
Is TextBox
Then

If cnt.Text = ""
ThenMsgBox("Vous n'avez pas rempli " & cnt.Name)

End
If

End
If

Next cnt

End
Sub

J'ai juste remplace value dans le second if par text car il ne connaissait pas value !il faisait une erreur !

pour rappel je suis sous vs2003 vb net !

quand je test si je clique sur mon bouton save y'a rien qui se passe !!!

Si quelqu'un a une idée
merci
Christophe
Commenter la réponse de cs_jimmy69
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 28 juil. 2006 à 12:29
0
Merci
Essai encore ca:
Au lieu de cnt.Text = ""
tu remplaces par :  cnt.Text = "" Or IsEmpty(cnt.Text) Or IsNull(cnt.Text)
Commenter la réponse de tri_yann
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 13:04
0
Merci
re

je viens de copier coller ta ligne mais ca ne foncitonne pas il ne connais pas isempty et isnull

IsEmpty(cnt.Text)

Or IsNull(cnt.Text)
Then

il me dit :

C:\\BROUILLON\TAB\TAB_WindowsApplication\FOption.vb(881): Name 'IsEmpty' is not declared.
et meme chose pour null !

faut il ajouter quelques coses une reference ou je ne sais quoi !

Merci
Christohpe
Commenter la réponse de cs_jimmy69
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 28 juil. 2006 à 13:21
0
Merci
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.
Commenter la réponse de chaibat05
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 28 juil. 2006 à 13:42
0
Merci
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

Essaie
cnt.Text is Null
cnt.Text = Null
Commenter la réponse de tri_yann
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 13:48
0
Merci
salut la propriete cause validation du bouton save est a TRUE !
 
Je test et vous dit quoi

Merci
Christophe
Commenter la réponse de cs_jimmy69
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 28 juil. 2006 à 15:14
0
Merci
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.
Commenter la réponse de chaibat05
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 28 juil. 2006 à 15:22
0
Merci
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 ?

Yann
Commenter la réponse de tri_yann
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 28 juil. 2006 à 15:45
0
Merci
Content pour toi !
La synthaxe est : If IsNull(Text1.Text) then

Ps : Juste pour savoir 
     Est-ce que tu as écris TypeOfcnt ou TypeOf (cnt) ? 
Commenter la réponse de chaibat05
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 28 juil. 2006 à 15:52
0
Merci
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.

PS. Ni l'un ni l'autre la syntaxe extacte est :

If TypeOf cnt is TexteBox Then

Yann
Commenter la réponse de tri_yann
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 28 juil. 2006 à 16:07
0
Merci
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.!
Commenter la réponse de chaibat05
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 28 juil. 2006 à 16:12
0
Merci
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

Yann
Commenter la réponse de tri_yann
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 28 juil. 2006 à 16:57
0
Merci
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.
Commenter la réponse de chaibat05
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 31 juil. 2006 à 09:01
0
Merci
Excuse moi cher Chaitbat05. Mon ton écrit est un peu vindicatif malgré moi. Je suis d'accord avec ce que tu dis.

Yann
Commenter la réponse de tri_yann
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 31 juil. 2006 à 10:57
0
Merci
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 !

Merci
Christophe
Commenter la réponse de cs_jimmy69
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 31 juil. 2006 à 13:08
0
Merci
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 :

629450 tri_yann et de =736628 chaibat05

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 !

Merci a tous et bonne semaine
Christophe
Commenter la réponse de cs_jimmy69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.