VB.Net Remplir un Tableau à partir d'un Combobox [Résolu]

Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
- - Dernière réponse : Kevin.Ory
Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
- 4 juin 2008 à 00:02
Salut...


Je cherche un moyen pour remplir un tableau à partir d'un Combobox


J'essais un truc du genre dans une boucle
     Dim Tableau as String ()
            Dim i As Integer = 0
            For i = 0 To Combobox.Items.Count - 1
                cbxCopie.Items.Add(Combobox.GetItemText(Combobox.Items.Item(i)))
                If i = 0 Then
                    ReDim Tableau(i)
                Else
                    ReDim Preserve Tableau(i)
                End If
                Tableau = Combobox.Items.Item(i)
            Next


Mais ca génère un erreur...


Comment on fait pour mettre mon combobox dans un Tableau


Merci de votre aide
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
390
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
3
Merci
Salut,
Essaye plutot Tableau(i)=Combobox.Items.Item(i)
@+
Megafan

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 154 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Megafan
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
3
Merci
Salut


C'est vrai j'avais oublié le (i) dans Tableau(i)
Mais j'ai encore un bug


Dans mon tableau les ligne qui s'ajoute valent "System.Data.DataRowView"
il ne va;ent pas le texte que j'ai dans mon Combobox ????


Tu vois pourquoi ca fais ça???

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 154 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MagDix
Messages postés
390
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
0
Merci
de plus ton if i=0 jusqu'au end if
ca sert pas a grand chose
avant ton for, dimensionne ton tableau genre redim tableau (combobox.items.count -1)
@+
Megafan
Commenter la réponse de cs_Megafan
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
OK j'ai trouvé


Tableau(i) = Combobox.GetItemText(Combobox.Items.Item(i))




merci de ton aide
Commenter la réponse de cs_MagDix
Messages postés
390
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
0
Merci
De rien
@+ Megafan
Commenter la réponse de cs_Megafan
Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
3
0
Merci
Salut,
Pfou, vous faites ça compliqué

Si les items dans ta ComboBox sont des Strings :

    Dim Tableau(-1) As String
    Combobox.Items.CopyTo(tab, 0)

Ou si ce n'est pas des Strings :

    Dim Tableau(Combobox.Items.Count - 1) As String
    For each Item As TrucChose In Combobox.Items
        Tableau(i) = Item.ToString
    Next

Et voilà...
Commenter la réponse de Kevin.Ory
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
22
0
Merci
Kevin.Ory, je pense que tu as codé un oeu trop vite
Dim Tableau(-1) As String 
D'ou sort ce -1 ?

    For each Item As TrucChose In Combobox.Items
        Tableau(i) = Item.ToString
    Next
Si tu ne définis pas i et si tu ne l'incrémente pas, ca ne va pas faire le résultat attendu.
__________
  Kenji
Commenter la réponse de Charles Racaud
Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
3
0
Merci
Dim Tableau(-1) As String déclare un tableau de longueur 0
Hé oui, il faut le savoir... j'avais bien trimé pour trouver ça à l'époque

Par contre, effectivement ça ne fonctionne pas mon code Pourtant

je suis sûr que ça fonctionne dans un cas semblable, lorsque on ne peut pas connaitre le nombre d'éléments avant d'avoir le tableau, mais je ne sais plus quoi (appels d'API je pense).
Donc il faut effectivement déclarer le tableau à la bonne taille, le code devient donc:


    Dim Tableau(Combobox.Items.Count - 1) As String
    Combobox.Items.CopyTo(tab, 0)

Et pour la deuxième remarque, tu as tout à fait raison, je devrais mieux relire mon code avant de poster
J'avais d'abord fais avec une incrémentation de i, puis j'ai mal cru que je pouvais simplifier avec un For Each. Donc voici le code avec l'incrémentation de i:

    Dim Tableau(Combobox.Items.Count - 1) As String
    For i As Integer = 0 To Combobox.Items.Count - 1
        Tableau(i) = Combobox.Items(i).ToString
    Next

Dsl, et merci de m'avoir repris Charles
Commenter la réponse de Kevin.Ory