VB.Net Remplir un Tableau à partir d'un Combobox

Résolu
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 3 juin 2008 à 18:43
Kevin.Ory Messages postés 840 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

8 réponses

cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
3 juin 2008 à 19:10
Salut,
Essaye plutot Tableau(i)=Combobox.Items.Item(i)
@+
Megafan
3
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
3 juin 2008 à 19:27
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???
3
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
3 juin 2008 à 19:13
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
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
3 juin 2008 à 19:31
OK j'ai trouvé


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




merci de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
3 juin 2008 à 19:48
De rien
@+ Megafan
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
3 juin 2008 à 22:29
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à...
0
Utilisateur anonyme
3 juin 2008 à 23:23
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
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
4 juin 2008 à 00:02
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
0
Rejoignez-nous