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

VB.NET Discussion :

Structure de donnés + ListView detail [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 14
    Points : 48
    Points
    48
    Par défaut Structure de donnés + ListView detail
    Bonsoir à tous,

    Je voudrais savoir si quelqu'un aurait une solution à mon problème.

    J'ai ceci :

    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
    26
    27
    28
    29
    30
    31
    32
    Private Structure Joueur
            Dim pNumero As Integer, pNom As String, pPoint As Integer
    End Structure
     
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            Dim nbTextBox As Integer = CType(Me.TextBox1.Text, Integer)
            Dim player As Joueur
            TextBox1.Enabled = False
            Button1.Enabled = False
            For i As Integer = 1 To nbTextBox
                Dim resultat As String
     
                resultat = InputBox("Quel est le nom du joueur ?", "Nom du joueur") 'La variable reçoit la valeur entrée dans l'InputBox
     
                If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
                    ListBox1.Enabled = True
                    ListBox1.Items.Add(resultat)
     
                    player.pNumero = i
                    player.pNom = resultat
                    player.pPoint = 0
     
                    Dim itm As ListViewItem
                    itm = New ListViewItem(player)
     
                    ListView1.Items.Add(itm)
     
                End If
            Next
            Button2.Enabled = True
    End Sub
    En gros :
    • Je demande à l'utilisateur de me donner le nombre de joueur,
    • Puis lui demande le nom du joueur 1 à x via msgbox,
    • Je récupère le nom du joueur dans la variable "résultat",
    • Ensuite, j'initialise mon tableau "player" avec "i", "résultat", et "0",
    • Et pour ensuite le passer vers une listview pour récapituler.


    La dernière étape ne fonctionne pas.

    Voici un petit aperçu :

    J'ai essayé avec des méthodes comme :


    Can you help me ?
    Nir3x

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bonjour,

    D'une manière général, dire "Cela ne fonctionne pas", c'est un peu vague...

    Prenez l'habitude de précisez s'il y a un message d'erreur et si oui, de le mettre en citation.

    Mis à part cela, le problème vient du fait que vous tenter de passer une structure au constructeur de la classe ListViewItem et que cela n'est pas permis (du moins chez moi ^^).
    Je parle de cette ligne-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    itm = New ListViewItem(player)
    Par contre, vous pouvez faire par exemple ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim arrPlayer() As String = {player.pNumero.ToString, player.pNom, player.pPoint.ToString}
    itm = New ListViewItem(arrPlayer)
    C'est juste un exemple d'une surcharge possible du constructeur de cette classe. A vous de voir ce qui vous conviendra.
    Kropernic

  3. #3
    Membre du Club

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 14
    Points : 48
    Points
    48
    Par défaut
    Oui désolé, je n'ai pas précisé.

    Enfaite quand, je fais le test, rien ne s'affiche dans la listview
    Je n'ai aucune erreur, même de compilation.

    J'ai essayé d’exécuter mon code avec votre exemple, mais cela n'affiche pas plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim arrPlayer() As String = {player.pNumero.ToString, player.pNom, player.pPoint.ToString}
    itm = New ListViewItem(arrPlayer)
    Et si, je retirais la structure, et passais juste dans itm, les variables concernées ?

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim arrPlayer() As String = {i, resultat, 0}
    itm = New ListViewItem(arrPlayer)
    Y aurait-il une possibilité pour que cela fonctionne ?
    Car, dans mon cas, je n'ai besoin que de passer les valeurs d'une variable à une listview. J'ai essayé de le faire via une structure pour la clarté du code, et pour apprendre avant les cours .

    Mais est-ce que vous auriez une solution pour passer les valeurs dans une ListView ?

    Sachant que, quand je veux passer un tableau à plus de 1 dimension, le "itm" est en surcharge ...

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bonjour,

    J'ai testé votre code "mots pour mots" et mis à part l'erreur que j'ai signalé, ça fonctionne bien chez moi et, pour 3 joueurs, j'ai bien les 3 noms des joueurs dans la listbox et les numéros 1, 2 et 3 dans la listview.

    Quelle est la valeur de la propriété View de votre ListView ? Car effectivement en mode Detail, cela ne fonctionne pas.

    En mode détail, il faut d'abord définir les colonnes et ensuite, avec ce code, ça passe (en supposant que les colonnes soient créées dans l'ordre correspondant à mon code).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim itm As New ListViewItem(player.pNumero.ToString)
    itm.SubItems.Add(player.pNom)
    itm.SubItems.Add(player.pPoint.ToString)
    ListView1.Items.Add(itm)
    Kropernic

  5. #5
    Membre du Club

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 14
    Points : 48
    Points
    48
    Par défaut
    Cela fonctionne parfaitement avec votre code et vos instructions :

    Citation Envoyé par Kropernic Voir le message
    En mode détail, il faut d'abord définir les colonnes et ensuite, avec ce code, ça passe (en supposant que les colonnes soient créées dans l'ordre correspondant à mon code).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim itm As New ListViewItem(player.pNumero.ToString)
    itm.SubItems.Add(player.pNom)
    itm.SubItems.Add(player.pPoint.ToString)
    ListView1.Items.Add(itm)
    Désolé, je dois paraitre pour un idiot à ne pas comprendre comment fonctionne une listview

    Je vais étudier plus sérieusement le VB.NET, il se pourrait que je le vois l'année prochaine en DUT Info.

    Un grand merci à vous,
    Nir3x.

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Nir3x Voir le message
    Désolé, je dois paraitre pour un idiot à ne pas comprendre comment fonctionne une listview
    On a tous été débutant un jour

    N'oubliez pas de passer le sujet en résolu
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment rendre générique la structure de données d'un ListView ?
    Par altropus dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/12/2009, 10h14
  2. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 19h10
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 19h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 17h10

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