IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

La saisie de tous les champs active le btn Ajouter


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 39
    Points : 27
    Points
    27
    Par défaut La saisie de tous les champs active le btn Ajouter
    Salut;
    dans quel événement je peux écrire le code de té-station de remplissage de tous mes champs dans un form avec un btn ajouter que je veux qu'il soit activé dès que les champs sont remplis
    j'ai essayer d'écrire ce code dans tous les textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Txt_cne_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_cne.TextChanged
            If Txt_cne.Text <> "" And Txt_moy.Text <> "" And Txt_pre.Text <> "" And Txt_nom.Text <> "" And ComboBox1.Text <> "" Then
                Button1.Enabled = True
            End If
        End Sub
    mais est ce qu'il a un évenement ou je peux mettre ce code une seul fois afin d'arriver à activer le btn ajouter.?
    Merci de me donner une idée dans le moin temps possible.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    peut-être avec un contrôle TextChanged sur tout les textbox qui appelle le sub Activate_Button

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Txt_cne_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_cne.TextChanged
           Activate_Bouton
    End Sub
     
    Private Sub Txt_moy_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_moy.TextChanged
           Activate_Bouton
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Activate_Bouton
            If Txt_cne.Text <> "" And Txt_moy.Text <> "" And Txt_pre.Text <> "" And Txt_nom.Text <> "" And ComboBox1.Text <> "" Then
                Button1.Enabled = True
            End If
    End Sub

  3. #3
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    La solution de gnain est une alternative cependant il faut bien prendre en compte qu'il n'est pas nécessaire d'évaluer toutes les conditions d'état des textbox si l'une d'entre elle est vide donc il faut privilégier l'utilisation de l'opérateur AndAlso (cout-circuitant) plutôt que l'opérateur And
    Cela évitera les calculs inutiles.

    ++

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    HS, question de culture générale : pourquoi le And n'est pas "court-circuitant" d'office ? On a pas ce genre de distinction dans les autres langages.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Plutôt que de recopier le code dans chaque événement gérer séparément, tu peux gérer tous les événements au même endroit. Comme ça tu n'as le code qu'une seule fois.

    Il suffit de faire ceci (l'important se trouve après le mot-clef "Handles" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub xxx(ByVal sender as Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged, textbox2.TextChanged, ... , textboxN.TextChanged
     
    End Sub
    Kropernic

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    HS, question de culture générale : pourquoi le And n'est pas "court-circuitant" d'office ? On a pas ce genre de distinction dans les autres langages.
    Bonjour jopopmk,

    Le And comme nous l'avons survolés lors de l'apprentissage du langage algorithmique (table de vérité) n'est pas court-circuitant du fait que l'expression à droite du And est évaluée quelque soit la valeur retournée à gacuhe et cela concerne tous les langages de programmation

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Je peux t'assurer qu'en C les expressions sont évaluées de gauche à droite et son court-circuitantes
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char *num = NULL;
    // ce code génère une erreur
    if (atoi(num) == 0 && num) printf("zero");
    // ce code ne génère pas d'erreur
    if (num && atoi(num) == 0) printf("zero");
    Ce code fonctionne pareillement, compilé avec bcc, msvc (win) ou gcc (linux) en C89.

    J'ai appris en cours d'algo qu'il ne fallait pas présumer de l'ordre d'interprétation justement au cas où ledit algo devait être porté sur un langage qui interprète tous azimuts, non pas parce que tous les langages fonctionnaient ainsi.
    Si j'ai le temps j'essaierai de tester sur d'autres langages.

    edit : même topo avec C#5.
    Plus je connais de langages, plus j'aime le C.

  8. #8
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Je peux t'assurer qu'en C les expressions sont évaluées de gauche à droite et son court-circuitantes
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char *num = NULL;
    // ce code génère une erreur
    if (atoi(num) == 0 && num) printf("zero");
    // ce code ne génère pas d'erreur
    if (num && atoi(num) == 0) printf("zero");
    Ce code fonctionne pareillement, compilé avec bcc, msvc (win) ou gcc (linux) en C89.

    J'ai appris en cours d'algo qu'il ne fallait pas présumer de l'ordre d'interprétation justement au cas où ledit algo devait être porté sur un langage qui interprète tous azimuts, non pas parce que tous les langages fonctionnaient ainsi.
    Si j'ai le temps j'essaierai de tester sur d'autres langages.

    edit : même topo avec C#5.
    --> Le caractère & corresponds à l'opérateur bitwise AND
    --> Cela && corresponds à son équivalent court-circuitant ANDALSO

    Il ne s'agit pas ici de présumer l'ordre d'interprétation car il y a peu de chance qu'en présence de ce type d'opérateur (comme la plupart des opérateurs de fait) que le JIT compiler (ex : pour un langage DotNet) ne change l'ordre d'exécution......

    L'opérateur soumet les instructions qui y sont rattachées à un comportement prédéfini !

    A+

  9. #9
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Oki, c'est le VB que je connais vraiment pas ^^
    Et du coup y'a un OrElse ?

    Dans mon cursus j'ai fait quelques heures de VB, mais comme c'était orienté IHM je suppose que le prof n'a jamais trouvé utile de nous le préciser.
    Et apparemment c'est pas le seul, beaucoup de codes qu'on trouve dans les questions utilisent le And et non le AndAlso pour de simples conditions.
    Plus je connais de langages, plus j'aime le C.

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Oui, le OrElse existe bien
    Kropernic

  11. #11
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Merci pour la précision

    Du coup quand j'aiderai sur du VB.NET j'essaierai de rappeler ce point qui n'est quand même pas anondin.
    Plus je connais de langages, plus j'aime le C.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Septembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    [QUOTE=gnain;8209893]
    peut-être avec un contrôle TextChanged sur tout les textbox qui appelle le sub Activate_Button

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Txt_cne_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_cne.TextChanged
           Activate_Bouton
    End Sub
     
    Private Sub Txt_moy_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_moy.TextChanged
           Activate_Bouton
    End Sub
    Merci gnain, mais ça va reste la meme puisque je devez appeler a chaque fois la procedure Activate_Bouton dans tous text_changed et mon code serai trop chargé

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Regarde ma première réponse dans cette discussion. Tu n'auras plus qu'un seul endroit où écrire du code...

    Mais normal que tu l'aies ratées avec tous ces vilains flooders
    Kropernic

  14. #14
    Nouveau membre du Club
    Inscrit en
    Septembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    Bonjour,

    La solution de gnain est une alternative cependant il faut bien prendre en compte qu'il n'est pas nécessaire d'évaluer toutes les conditions d'état des textbox si l'une d'entre elle est vide donc il faut privilégier l'utilisation de l'opérateur AndAlso (cout-circuitant) plutôt que l'opérateur And
    Cela évitera les calculs inutiles.

    ++
    Merci aussi wallace1;l'opérateur AndAlso me semble très utile c'est la première fois que je le vois;mais dans quel événement je dois écrire cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If Txt_cne.Text <> "" AndAlso Txt_moy.Text <> "" AndAlso Txt_pre.Text <> "" AndAlso Txt_nom.Text <> "" AndAlso ComboBox1.Text <> "" Then
                Button1.Enabled = True
            End If

  15. #15
    Nouveau membre du Club
    Inscrit en
    Septembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par Kropernic Voir le message

    Il suffit de faire ceci (l'important se trouve après le mot-clef "Handles" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub xxx(ByVal sender as Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged, textbox2.TextChanged, ... , textboxN.TextChanged
     
    End Sub
    Merci également à Kropernic ;est ce que tu peux m'expliqué mieux votre procédure?

  16. #16
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bin plutôt que de gérer les événements de tes textboxes dans des sub séparées, tu les traites tous au même endroit. Suffit d’allonger la clause Handles dans la déclaration de la sub.

    Et si ma phrase n'est pas compréhensible, c'est qu'il est alors nécessaire de lire un cours sur VB.NET (celui de Mr. Lasserre qui est en post-it sur ce forum par exemple).
    Kropernic

  17. #17
    Nouveau membre du Club
    Inscrit en
    Septembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    si j'ai suivi votre démarche le button "ajouter" serai activé dés l'entrée d'une valeur dans le premier textbox et ça je ne le veux pas ;car il faut tester d'abord que tous les champs sont remplis

  18. #18
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_TextChanged(sender As Object, e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged, TextBox4.TextChanged, ComboBox1.TextChanged
            If TextBox1.Text <> String.Empty AndAlso TextBox2.Text <> String.Empty AndAlso TextBox3.Text <> String.Empty AndAlso TextBox3.Text <> String.Empty AndAlso TextBox4.Text <> String.Empty AndAlso ComboBox1.Text <> String.Empty Then
                Button1.Enabled = True
            Else
                Button1.Enabled = False
            End If
        End Sub

  19. #19
    Nouveau membre du Club
    Inscrit en
    Septembre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Merci shayw c'est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/09/2014, 13h44
  2. UPDATE sur tous les champs en même temps > saisie rapide ?
    Par sendme dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/01/2011, 11h52
  3. Réponses: 3
    Dernier message: 16/04/2010, 10h44
  4. [1.x] Comment activer le trim pour tous les champs
    Par lr dans le forum Symfony
    Réponses: 4
    Dernier message: 21/01/2010, 12h42
  5. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo