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]Recherche variable dans combobox


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut [vb.net]Recherche variable dans combobox
    Bonjour à tous,

    Voila j'ai une combobox qui est remplie par un fichier texte.
    (ceci afin de pouvoir ajouter autant d'élément que necessaire par la suite en ajoutant seulement des lignes dans le fichier)

    le contenu de cette combobox peut changer suivant la valeur d'une textbox.

    Pour filtrer l'information je cherche une variable dans le fichier si je la trouve j'ajoute la ligne correspondante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     Sub Charger_ListeTypeAnalyse()
     
            If Not Box_Type_Visite.SelectedItem Is "AU" Then
                Box_Type_Analyse.Items.Clear()
                Try
                    Dim SRTypeAnalyse1 As StreamReader = File.OpenText("\carte mémoire\aip_ressources\Liste_Box\Type_Analyse.txt")
                    Do
                        LigneTypeAnalyse = SRTypeAnalyse1.ReadLine()
                        If Not LigneTypeAnalyse Is Nothing Then
                            RechercheTypeVisiteDansTypeAnalyse = CStr(LigneTypeAnalyse.IndexOf(Box_Type_Visite.SelectedItem.ToString & "_"))
                            If CDbl(RechercheTypeVisiteDansTypeAnalyse) >= 0 Then
     
                                TabTypeAnalyse = LigneTypeAnalyse.Split(CChar("="))
     
                                Box_Type_Analyse.Items.Add(TabTypeAnalyse(1))
                            End If
                        End If
                    Loop Until LigneTypeAnalyse Is Nothing
                    SRTypeAnalyse1.Close()
                Catch ex As Exception
                End Try
    End Sub
    Maintenant je voudrais filtrer cette meme combobox afin d'être encore plus limitté dans les choix en fonction de deux checkbox (cochée ou non)

    Ce que je voudrais c'est rechercher une certaine variable dans les items de ma combobox. A la même manière que pour le fichier texte, et si je trouve je supprime la ligne qui cooresponde...
    J'ai essayé avec For each (meme tente par do loop...)
    et je comprends pas ce qui cloche...

    J'ai essayé un code qui me renvoie dans une msgbox la valeur de l'item qu'il analyse et s'il trouve la valeur ou pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If CheckBox_Eau_Influencee.Checked = False Then
                           For Each valeur As String In Box_Type_Analyse.Items
                    RechercheEauInfluencee = CStr(Box_Type_Analyse.Items.IndexOf("Anae"))
                    If CDbl(RechercheEauInfluencee) <= 0 Then
                        MsgBox(valeur & "PAS ANAE")
                    Else
                        MsgBox(valeur & "ANAE")
                    End If
                Next
    (Par rapport à ce code je vois toutes les valeur de la combobox suivie de "PAs ANAE) ce qui est en soie pas ce que je voudrais... puisque meme s'il trouve "Anae" il me dis que non...

    Qu'est ce qui cloche?

    merci de votre aide,

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Je n'est pas trop essayé de comprendre ce que tu voulais faire, mais un truc m'a frappé.
    Le fait qu'a chaque tour de boucle, celle-ci te renvoi toujours la même réponse n'a rien d'étonnant.
    Au début de ta boucle, tu affecte une valeur à ta variable RechercheEauInfluencee.
    Du résultat de cette variable est déterminé le branchement qui suit.
    Or, a chaque itération, a mon avis, cette valeur reste la même.
    For each VALEUR ... et ta variable VALEUR n'apparait pas a droite du signe =.
    Tu devrais essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechercheEauInfluencee = CStr(VALEUR.IndexOf("Anae"))

  3. #3
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 182
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 182
    Par défaut
    Bonjour.

    Le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RechercheEauInfluencee = CStr(Box_Type_Analyse.Items.IndexOf("Anae"))
    Ca serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RechercheEauInfluencee = CStr(Box_Type_Analyse.Items).IndexOf("Anae")
    On peut cherche des heures ce genre de "bug" ! Pas de bol, IndexOf existe aussi pour collection (type de items)...

    Cdt.

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut
    Effectivement cela m'affiche correctement s'il trouve la valeur...

    Par contre impossible de supprimer... en effet si je trouve la valeur je supprime l'item en question... mais après fini.

    Si je met: exit for (je quitte la bloucle, cela supprime la ligne mais ca ne recherche pas la suivante...)
    Si je le met pas mon appli bloque sur le "next"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
           Dim RechercheEauInfluencee As String
     
            If CheckBox_Eau_Influencee.Checked = False Then
     
                For Each valeur As String In Box_Type_Analyse.Items
                    RechercheEauInfluencee = CStr(valeur.IndexOf("Anae"))
                    If CDbl(RechercheEauInfluencee) >= 0 Then
                        'on supprime ceux qui contiennent ANAE
                        Box_Type_Analyse.Items.Remove(valeur)
                        ' Exit For
                    End If
                Next
     
            Else
     
                For Each valeur As String In Box_Type_Analyse.Items
                    RechercheEauInfluencee = CStr(valeur.IndexOf("Anae"))
                    If CDbl(RechercheTypeVisiteDansTypeAnalyse) <= 0 Then
                        'On supprime ce qui ne contiennent pas ANAE
                        Box_Type_Analyse.Items.Remove(valeur)
                        'Exit For
                    End If
                Next
     
            End If
    L'exception System.InvalidOperationException n'a pas été gérée
    Message="InvalidOperationException"
    StackTrace:
    at ArrayListEnumeratorSimple.MoveNext()
    à Assistant_Preleveur.Information.Filtrer_Type_Analyse()
    à Assistant_Preleveur.Information.Charger_ListeTypeAnalyse()
    à Assistant_Preleveur.Information.Box_Type_Visite_SelectedIndexChanged()
    à System.Windows.Forms.ComboBox.OnSelectedIndexChanged()
    à System.Windows.Forms.ComboBox.WnProc()
    à System.Windows.Forms.Control._InternalWnProc()
    à Microsoft.AGL.Forms.EVL.EnterMainLoop()
    à System.Windows.Forms.Application.Run()
    à Assistant_Preleveur.AIP.Main()

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Les valeurs de départ et d'arrivée des boucles FOR...NEXT sont calculées une seule fois au démarrage de la boucle.
    Résultat : Dans ta boucle tu modifie le nombre d'éléments et ta boucle continue de tourner alors qu'il n'y a plus d'éléments.
    J'utilise pas beaucoup les boucles FOR EACH NEXT mais avec un FOR NEXT tu pourrais essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For i as integer = 0 to Box_Type_Analyse.Items.count -1
         Dim Valeur as string = Box_Type_Analyse.Items(i)
         RechercheEauInfluencee = Valeur.IndexOf("Anae")
         If ConditionsDeSuppressionRéunies 
                ' On supprime
                ' Si fin de boucle on quitte
                if i = Box_Type_Analyse.Items.count -1 then exit for
                ' Si on est toujours là, on fait i - 1 pour pas sauter d'éléments ...
                i -= 1
          End If
    Next ' i

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut
    on en apprend chaque jour.

    merci beaucoup, je vais essayer tout ça

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Tiens moi au courant ...

Discussions similaires

  1. Recherche variable dans champs d'une table
    Par kemiolek dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/05/2008, 10h09
  2. [vb.net]recherche "précise" dans une variable
    Par skaraa dans le forum Windows Forms
    Réponses: 6
    Dernier message: 24/09/2007, 17h00
  3. [VB.NET] problème variables dans les textbox
    Par pierrepelerin dans le forum Windows Forms
    Réponses: 6
    Dernier message: 18/10/2006, 00h13
  4. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  5. [VB.NET] Recherche Info dans Active Directory
    Par Vlat dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/12/2005, 15h29

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