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 :

mise a jour d'une listbox en fonction d'une textbox


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut mise a jour d'une listbox en fonction d'une textbox
    bonjour,
    je suis en plein projet pour mon stage ou je developpe une application en vb.net et c'est la premiere fois que j'emploi ce language...
    Je m'en sors car j'avais un peu employé vb6 auparavant
    cependant,je bloque face a un probleme de codage car je pense avoir trouvé la démarche mais je n'arrive pas a générer le code...

    je m'explique :
    j'ai une listbox dans laquelle des nom sont chargés à partir d'un fichier XML,jusque la tout va bien ^^

    ---> mais j'ai mis en place une textbox pour qui en tapant des caractère permettrait de filtrer le contenu de ma listbox.

    - j ai reflechi a comment faire et je pense qu'il faudrai créer une boucle dans ma textbox qui a chaque caractère entré (avec keypress) mettrai a 0 ma listbox et chargerai les element qui correspondent a la chaine entré dans ma textbox du genre : si string.textbox = string.items.listbox (je sais que la syntace est fausse la ^^ ) alors on retourne les valeurs...

    j'espere que je suis clair
    si quelqu'un a des pistes je suis tout ouïe

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    linq to XML

    ca fera ce que tu veux et de façon propre. A toi d'effectuer les recherches pour l'utiliser

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    merci de répondre si vite
    certes le linq to xml est super interessant pour manipuler du xml,mais j'ai deja gerer mon xml dans ma listbox et je ne comprend pas trop en quoi il peu m aider a établir le lien entre les item chargé dans ma listbox et ma texbox

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Linq to XML te permettrait d'utiliser l'instruction Where sur ton fichier XML avec par exemple, la condition StartsWith(le contenu de ton textbox)
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    hum...je ne maitrise pas cela et je ne trouve pas de tuto qui explique clairement la maitrise de cette methode...

    on ne peut pas proceder autrement?
    comme par exemple faire un parcours des items de ma listbox et comparer la chaine de chaque items et la chaine entré en parametre dans la textbox ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Tu as la possibilité d'utiliser l'evenement TextChanged de ta textbox.
    Du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private sub TBOX_Textchanged() handles TBOX.textchanged
     
    listbox.reinitialiser()
     
    For each texte in ListeDesElementsAMettreDans la listbox
        if texte.startswith(TBOX.text)
            listbox.ajouter(texte)
        en if
    next
     
    end sub

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Par défaut
    Bonjour
    on ne peut pas procéder autrement?
    comme par exemple faire un parcours des items de ma listbox et comparer la chaine de chaque items et la chaine entré en paramètre dans la textbox ?
    C'est pas pénalisant si tu as 150 mots mais si tu en as 150 000 ca risque de prendre un peu plus de temps.

    Pour LinQ to XML il y a des tutos sur la msdn

    Cordialement

    Nasty

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    tu peux faire à ta façon mais c'est pas propre
    un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach(ListItem li in lstbox.Items)
    {
     
    }
    mais le problème va être là, ca te fait boucler sur une collection que tu edites au fur et à mesure que tu lis. comme si tu arrachais les pages d'un livre au fur et à mesure que tu feuillettes donc ton marque-page se perd.


    quant à la doc Linq To XML, y en a partout et surtout si tu apprends le C#, alors plus vite tu te mettras à LINQ (soit la notation sugar, soit les methodes d'extension), plus vite tu progresseras en faisant du bon code.
    le code dont t'as besoin tient en une ligne et si on te la donne toute faite, tu ne la comprendra pas


    sinon il reste la méthode de Flamby38 mais faut relire les données du XML à chaque fois. et si la méthode propre est de persister ces valeurs, c'est justement là où linq te servira. au lieu du code de Flamby38, ca donnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elements.Where(e=> e.StartWith(txtTextbox.Text)
    sachant que ca, tu peux ensuite le trier, faire des opérations pour mettre une majuscule, etc sans écrire une seule ligne de code supplémentaire

  9. #9
    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
    Dans l'événement textchanged du texbox, il faut que tu parcours chaque item de la listbox et que tu efface ceux qui ne commencent pas comme le texte inscrit dans la textbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'dans levenement textchanged
    For each item as string in talistbox.items
                If trim(tontextbox.text) = item.Substring(0, tontextbox.Length) Then
                    talistbox.Items.Remove(item)
                End If
    Next
    mais comme dit nasty, ca peut être long, ca depend ce que tu peux avoir dans ta listbox

Discussions similaires

  1. Mise à jour d'une listbox en fonction de 3 combobox
    Par Chris171717 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 24/02/2013, 14h23
  2. Réponses: 5
    Dernier message: 11/10/2011, 14h29
  3. Mise à jour d'une table en fonction d'une autre
    Par lucy101 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/05/2010, 14h24
  4. Mise à jour d'une JTable en fonction d'une JList
    Par xtaZy dans le forum Composants
    Réponses: 1
    Dernier message: 21/03/2007, 18h25
  5. Mise a jour d'une table en fonction d'une base distante
    Par Thor Tillas dans le forum Access
    Réponses: 1
    Dernier message: 11/01/2007, 09h27

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