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

Windows Forms Discussion :

[VB.net] Detecter modification TextBox


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Par défaut [VB.net] Detecter modification TextBox
    Bonjour,

    J'ai plusieurs TextBox dans un UserControl qui sont pré remplies avec les informations de la base de données.
    L'utilisateur peut changer la valeur de n'importe quelle TextBox puis valider et ceci entraine la modification de tous les champs dans la base.

    C'est pas optimisé car je réenregistre meme les TextBox qui n'ont pas étés modifiés et en plus je souhaite garder un historique des modifications donc je voudrais pouvoir detecter les TextBox qui ont étés modifiés.

    Si vous connaissez un moyen de faire ca, cela m'aiderait grandement.

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Davide
    Profil pro
    Inscrit en
    Août 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 80
    Par défaut
    Bonjour,

    Tu as un attribus qui défini si le texte de ton TextBox a été modifié ou non.. --> TextBox.Modified

    Je te conseille, quand tu recherches des choses pareille, à regarder dans la documentation du framework elle est extrêmement bien faite..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Par défaut
    ta aussi un evenement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void textBox_TextChanged(object sender, System.EventArgs e)
    Qui s'active quand la textbox est changer.
    Je pense que c'est ce que tu recherche.

  4. #4
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    pour parcourir tout tes textbox tu peux utiliser un for each :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim item as textbox
     
    for each item in usercontrol.controls
     
    if item.modified = true Then
    'le textbox a été modifié
    end if
     
    next

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Par défaut
    Interessant ton bout de code Hulk mais comment savoir dans mon if quel TextBox a été modifié pour modifier le bon champ dans ma base ?

  6. #6
    Membre éclairé Avatar de Davide
    Profil pro
    Inscrit en
    Août 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 80
    Par défaut
    Documente toi sur le mot clé "For Each" en VB ou "foreach" en C#..
    Il te permet d'itérer dans une collection de variables de même type..

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Par défaut
    Oui je connais For Each mais le truc c'est que dans la boucle je vais bien parcourir toutes mes TextBox mais dans le if comment savoir quelle TextBox est concernée par le modified.

    EDIT : Je peux faire item.Name mais apres il n'y a plus d'interet à faire le For Each si je dois tester tous les noms dans le If

  8. #8
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    l'interet du for each est que tu ai moins de lignes de codes, de plus je comprends pas ta remarque :

    EDIT : Je peux faire item.Name mais apres il n'y a plus d'interet à faire le For Each si je dois tester tous les noms dans le If
    il faut faire comme tu as dit, tu prends le name, le for each est là pour voir lesquels on été modifiés, tu es obligé de tous les parcourir, par contre, quand il n'as pas été modifié, tu ne rentre pas dans ton if.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Par défaut
    Sans le For Each je ferai if(tbX.Modified = True) Then ... ma requete
    Avec le For Each je vais avoir if(item.Name = '...') Then ... ma requete
    Donc dans les deux cas j'aurai autant de "if" que de TextBox dans mon UserControl.

    Donc finalement j'aurai autant de lignes de code dans les deux cas je crois à moins que je n'ai pas saisi quelque chose.

  10. #10
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    ca depend, dans le for each tu peux concatener ta requete au fur et a mesure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim item as textbox
    dim requete, morceauRequete
    for each item in usercontrol.controls
     
    if item.modified = true Then
    requete = requete & " " & morceauRequete
    end if
     
    next

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Par défaut
    Sinon comme je le disais mais tu ne semble pas l'avoir remarqué, tu as un evenement que tu peux associer a ta textbox qui "s'active" quand le text de la textbox est changé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private void textBox_TextChanged(object sender, System.EventArgs e)

  12. #12
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Rien ne t'empeche d'utiliser un TAG pour ta requête...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'A l'initialisation :
    MyTextBox.Tag = "UPDATE SET ... {1} ..."
    AddHandler MyTextBox.TextChanged, Me.OnTBTextChanded
     
    'Dans OnTBTextChanged
    Sender.Modified = True
     
    'Et puis avec ca dans ton traitement
    For Each Item As TextBox in Me.Controls
    If Item.Modified Then
       ExecReq(String.Format(Item.Tag, Item.Text))
       Item.Modified = False
    End If
    Next

Discussions similaires

  1. [VB.NET] Pb rafraichissement TextBox
    Par thebeb dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/02/2007, 14h43
  2. [.NET][C#] Modification comboBox
    Par fab2050 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/11/2005, 19h47
  3. [VB.NET] Sauvegarde dans TextBox des logons utilisés
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2005, 11h00
  4. [VB.NET] UTF8Encoding et TextBox
    Par Cyrilange dans le forum ASP.NET
    Réponses: 4
    Dernier message: 08/06/2005, 07h41
  5. [VB.NET] [XML] Modification d'une valeur
    Par kirk80 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/09/2004, 16h15

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