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] Collection [Débutant(e)]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut [VB.NET] Collection
    Bonjours,

    je voudrais crée une collection :
    - collection est composée de trois champs : champ1, champ2, champ3

    je n'ai encore jamais créé de collection, comment faire pour,
    -créer ma collection
    - ajouter un élémnet à un endroit donné de ma collection
    - supprimer un element à un endroit donné de ma collection
    - connaitre le nombre d'element dans ma collection

  2. #2
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    tu peux utiliser l'objet ArrayList pour cela.
    http://abstractvb.com/code.asp?A=1030

    @+

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Par défaut
    Hello,

    avec un ArrayList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ArrayList al = new ArrayList();
    al.Add("foo"); // ajoute un élément
    al.Insert(0, "bar"); // insère un élément à l'index 0
    al.RemoveAt(1); // Supprime l'élément à l'index 1
    int i = al.Count; // Nombre d'éléments
    a+

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Merci de votre aide mais la ligne de commande :
    Public GridCaseGreyTemp As New Arraylist()

    Me génère une erreur : Type ArrayList() indéfini

    Remarque : je l'utilise dans un composant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Imports System 
    Imports System.Drawing 
    Imports System.Windows.Forms 
    Imports System.ComponentModel 
     
    Public Class AgendaGrid 
     
       Inherits ContainerControl 
     
       Public GridCaseGreyTemp As New Arraylist()

  5. #5
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    Imports System.Collections ou un truc dans le genre.

    @+

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Merci ça marche,

    on peut mettre plusieurs attribut pour un elements ?
    GridCaseGrey.Add("coucou","kiki","coco") => ça marche pas

  7. #7
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    il faut faire des add successifs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GridCaseGrey.Add("coucou");
    GridCaseGrey.Add("kiki");
    GridCaseGrey.Add("coco");
    @+

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Mais pourquoi je ne retrouve pas tous mes elements

    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
    Dim MaCollection As New Arraylist()
    			Dim MonTableau(2) As Int16
    			Dim i As int16
     
    			MonTableau(0)=1
    			MonTableau(1)=2
    			MonTableau(2)=3
    			MaCollection.Add(MonTableau)
     
    			MonTableau(0)=4
    			MonTableau(1)=5
    			MonTableau(2)=6
    			MaCollection.Add(MonTableau)
     
    			Dim Element(2) As Int16 'colorie les zones grises
       			For Each Element In MaCollection
       				For i=0 to 2
       					MessageBox.Show(Element(i))
       				Next i
       			Next Element

  9. #9
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    montre nous la sortie pour que je comprenne ce qui te manque.

    @+

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    je dois voir apparaitre successivement les valeurs 1,2,3,4,5,6 dans la messagebox => actuellement, j'ai 4,6,5,4,5,6

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    En gros c'est comme si je rentrais deux fois le meme tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MonTableau(0)=4 
    MonTableau(1)=5 
    MonTableau(2)=6 
    MaCollection.Add(MonTableau)

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Bizarement, si je crée deux tableaux, j'ai bien 1,2,3,4,5,6 qui s'affiche => comment puis-je faire pour n'avoir qu'un seule tableau ?

    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
    Dim MaCollection As New Arraylist()
    			Dim MonTableau(2) As Int16
    			Dim MonTableau2(2) As Int16
    			Dim i As int16
     
    			MonTableau(0)=1
    			MonTableau(1)=2
    			MonTableau(2)=3
    			MaCollection.Add(MonTableau)
     
    			MonTableau2(0)=4
    			MonTableau2(1)=5
    			MonTableau2(2)=6
    			MaCollection.Add(MonTableau2)
     
    			Dim Element(2) As Int16 'colorie les zones grises
       			For Each Element In MaCollection
       				For i=0 to 2
       					MessageBox.Show(Element(i))
       				Next i
       			Next Element

  13. #13
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Au pire tu peux faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    MonTableau(0)=1
    MonTableau(1)=2
    MonTableau(2)=3
    MaCollection[0]=MonTableau
     
    MonTableau(0)=4
    MonTableau(1)=5
    MonTableau(2)=6
    MaCollection[1]=MonTableau

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    ça marche pas

    MaCollection[0] = MonTableau
    => l'expression n'est pas une methode

  15. #15
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    c'est bizarre ça pourtant en C# ça marche
    tu as essayé en faisant comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim MaCollection As New Arraylist()
    Dim MaLittleCollection As New Arraylist()
     
    MaLittleCollection.Add(1)
    MaLittleCollection.Add(2)
    MaLittleCollection.Add(3)
    MaCollection.Add(MaLittleCollection)
     
    MaLittleCollection.Add(4)
    MaLittleCollection.Add(5)
    MaLittleCollection.Add(6)
    MaCollection.Add(MaLittleCollection)

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    j'ai essyé ça : j'ai pas d'erreur à la compile mais quand je lance le programme ça bug

    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
    Dim MaCollectionMini3 As New Arraylist()
       			Dim MaCollection3 As New Arraylist()
     
    			MaCollectionMini3.Add(1)
    			MaCollectionMini3.Add(2)
    			MaCollectionMini3.Add(3)
    			MaCollection3.Add(MaCollectionMini3)
    			MaCollectionMini3.Clear
     
    			MaCollectionMini3.Add(4)
    			MaCollectionMini3.Add(5)
    			MaCollectionMini3.Add(6)
    			MaCollection3.Add(MaCollectionMini3)
     
    			Dim Element3 As object
    			Dim Element3b As int16 
    			For Each Element3 In MaCollection3
    				For Each Element3b In Element3
       					MessageBox.Show(Element3)
       				Next Element3b
       			Next Element3
    En plus je ne trouve pas cette methode térible : il doit bien y avoir un moyen de rentrer mes tableaux : est-ce un bug ou une erreur de code ?

  17. #17
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    bè je vois rien qui soit mauvais et c'est sur qu'on peut le faire vu que je l'utilise (dans les 2 cas : avec les tableau et avec arraylist) en ce moment dans mon prog.
    Mais pourquoi ça te gène au juste de créer 2 tableaux : C'est parce que c'est un exemple et tu peux en avoir plus :

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    oui, je peux avoir X tableau (d'où l'interet d'utiliser une collection)

  19. #19
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    dans ce cas là si tes tableau font toujours 3cases, tu peux insérer les valeurs de ton tableau directement dans ta collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MaCollection.Add(1)
    MaCollection.Add(2)
    MaCollection.Add(3)
    MaCollection.Add(4)
    MaCollection.Add(5)
    MaCollection.Add(6)
    et quand tu les récupères, tu le fait 3 par 3.

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    merci trotters213, je crois que je vais être obligé d'utiliser cette solution

    si quelq'un à la solution pour utiliser les tableaux, n'hésistez surtout pas ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  2. Réponses: 4
    Dernier message: 01/12/2009, 14h11
  3. Réponses: 4
    Dernier message: 25/11/2009, 10h46
  4. [VB.NET]Collection de tache : comment ferriez-vous
    Par Emcy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/12/2006, 14h18
  5. [VB.NET] Sérialisation XML de Collections
    Par nico-pyright(c) dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/12/2004, 15h28

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