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 :

Besoin d'être éclairé sur la ListBox - Vb.net


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par défaut Besoin d'être éclairé sur la ListBox - Vb.net
    Salut Salut, je suis tout nouveau. Je suis actuellement en licence de maths et cette année mes cours d'algorithmique sont appliqués à vb.net.

    Alors simplement j'ai un projet à rendre d'ici mi du décembre.
    Clairement j'ai besoin d'afficher les valeurs d'un tableau dans une listebox, le problème étant que mes types de données sont des structures. A vrai dire j'ai un prof qui fait plus de l'algorithmique pure (sur papier dirons nous) et qui délaisse un peu le côté codage sur machine, ce qui en résulte que nous gambadons joyeusement sans repères sur vb.net. J'aimerais simplement savoir si quelqu'un voudrait bien m'expliquer rapidement tout ça. J'ai visité tous les tutos possibles (c'est d'ailleurs comme ça que je vous ai trouvé, et oui effectivement il y a quelque chose sur les tableaux et structures, mais ça ne m'éclairait pas), et j'en appelle à votre gentillesse. Ou alors simplement me rediriger vers un tuto qui pourrait m'aider.

    Merci !

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    quelle est exactement le problème ?

    le listbox de windows forms est un controle simple
    il y a la collection item pour mettre des choses dedans (.Add, .Remove ...)
    il y a les propriétés SelectedItem et SelectedItems (si multisélection)

    après on met ce qu'on veut dedans, c'est le .tostring qui est appelé sur chaque chose pour faire l'affichage

    si tu as une structure (en .net on préfère les classes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public structure A
      public property p1 as string
      public property p2 as integer
    end structure
    tu peux mettre dedans un overrides de tostring pour choisir quoi afficher
    la classe object a une méthode tostring, toutes les classes héritent implicitement de object, overrides sert à redéfinir le corps d'une méthode
    une structure n'est pas une classe on peut néanmoins overrider le tostring aussi

    donc tu peux y mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Overrides Function ToString() As String
        Return p1 ' ou Return p1 & " " & p2.tostring
    End Function
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par défaut
    Merci d'avoir répondu aussi rapidement. Je vais essayer tout ça !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par défaut
    Donc voilà oui j'ai bien compris comment utiliser la fonction ToString(), et j'ai bien compris à quoi elle servait. Le problème c'est que je ne sais pas à quel moment je convertis ma structure en chaîne de caractère, ni où placer mes codes pour obtenir le résultat.
    Je joins quelques screens. Dans l'idée j'ai rentré des données et j'ai un bouton sur lequel lorsque j'appuie ma listbox se remplie avec mes données. En fait mon projet c'est de modéliser un réseau de lignes de métro, avec calcul de distance, plus court chemin etc... Ça je m'en sors en terme d'algorithmique. Le problème c'est que je ne sais pas bien comment utiliser le côté "design" de vb

    Merci, bonne soirée !
    Images attachées Images attachées   

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    à la place d'un tableau vous pouvez utiliser une collection, c'est plus pratique dans le sens où il n'y a pas à définir de taille ca s'agrandit à chaque .add

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim l as new list(of tellestructure)
    ca permet de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i as integer = 0 to l.count -1
       unlistbox.items.add(l(i))
    next
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each instanceTelleStructure as telleStructure in l
      unlistbox.items.add(instanceTelleStructure)
    next
    le list(of ) contient en interne un tableau donc ca revient au même, c'est juste plus pratique (et dans certains cas plus performant)



    à terme au lieu des structures, vous pourrez essayez les classes (remplacer le mot structure par classe suffit)
    ce ne pas obligatoire pour ce genre d'exercice mais ca deviendra surement indispensable je pense
    il faudra par contre se renseigner sur la différence, comme par exemple l'appel du constructeur par new et la notion de valeur/référence


    pour le tostring, c'est une spécificité du listbox, on lui donne des items as object (donc n'importe quoi) une fois qu'il reprend la main pour dessiner à l'écran le contenu, c'est lui qui appelle .ToString sur les objets qu'on lui a donné
    donc vous avez juste à lui donner à manger et à coder tostring sur vos structures pour choisir ce qui sera affiché (un string au choix, parmis les propriétés (ou champs dans votre cas (public property machin c'est un propriété et public truc c'est un champ))

    après le choix du controle pour affichage est un choix par rapport à l'interface voulue
    le listbox permet d'afficher des éléments en lignes, sans colonnes (ou indirectement avec des tabulations), les éléments sont sélectionnables
    il y a aussi le listview un peu mieux (colonne ou éléments plus complexes qu'un string) et après le datagridview (cases dans un tableau, tri sur clic sur une entete ...)



    une astuce qui vous sera surement utile si vous avez besoin de trier le listbox :
    créer une nouvelle collection avec tri à partir d'une collection de résultat avant de faire des lelistbox.items.add
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim listeTriee = (from element in listResultat order by element.x select element)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir DeusExMachina,

    A mon humble avis avec les données que tu manipules tu devras utiliser 1 contrôle ListView ou DataGridView et non 1 ListBox.

    Il existe des tutos pour te familiariser avec l'EDI Visual Studio sur la toile et tu peux dors et déjà jeter un œil sur celui de Philippe Lasserre ici :
    http://plasserre.developpez.com/cour.../?page=edi#LIV

    Je vais tout de même t'aider avec le jargon :

    1- Tu as déjà une grande idée de la modélisation de ton projet. Suite à ton cahier des charges tu as pu faire ressortir : Les classes à prévoir, les données à traiter, les messages ...etc...

    2- Tu optes pour un projet de type "Windows Form".

    3- Tu as une idée de l'interface de ton programme. La disposition des contrôles,...etc...

    4- En mode "Concepteur de vues" :
    - tu poses tes contrôles puis tu paramètres leurs propriétés
    - tu définies des événements lorsqu'un utilisateur manipule tes contrôles grâce aux gestionnaires d’événements de tes controles :

    - ListBox1.SelectedIndexChanged : l'utilisateur sélectionne un item dans ton contrôle Listbox et les arguments dans la signature du gestionnaire de ce contrôle permettent d'exécuter des instructions.
    - Button1.Click : Exécute une suite d'instructions lorsque l'utilisateur appui sur le bouton
    ...etc.....

    5- Tu débogues pour vérifier si ton code ne contient pas d'erreurs !

    6- Tu compiles ton projet et récupère ton binaire dans le répertoire "....\Bin\Release" ou "....\Bin\Debug".



    A+

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par défaut
    Pardon de répondre aussi tard. Mon problème est résolu, merci de votre aide, ça m'a beaucoup aidé. Au final j'ai utilisée des classes et j'ai tout instancié comme correctement et ça marchait.
    Bonne soirée !

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

Discussions similaires

  1. [Débutant] [VB.NET] Double cliquer sur élément listbox [VB.NET]
    Par ziggy76 dans le forum VB.NET
    Réponses: 1
    Dernier message: 22/02/2014, 19h53
  2. Réponses: 12
    Dernier message: 29/03/2012, 23h01
  3. Besoin de mettre les choses au clair sur les webparts
    Par Titi41 dans le forum SharePoint
    Réponses: 3
    Dernier message: 23/04/2008, 12h29
  4. Besoin de vos avis éclairé sur ma base de données
    Par scaleo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/12/2005, 18h36
  5. question (peut-être idiote) sur les vues
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/03/2003, 10h35

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