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 :

Modifier element dans ListBox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 57
    Par défaut Modifier element dans ListBox
    Bonjour à tous,

    j'ai une ListBox que je rempli avec des objets crées à partir d'une Structure.
    J'insere les objets comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NewObjet As Struct1
     
    NewObjet = New Struct1
    NewObjet.Nom = "Toto"
    NewObjet.Age = 145
    Me.ListBoxNom.Items.Add(NewObjet)
    Quand je click sur un element de la ListBox, il affiche la valeur des differents membres dans des TextBox.

    Sur le formulaire, je peux modifier manuellement la valeur des TextBox,
    et j'ai un bouton pour valider les modifications. J'utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim NewObjet As Struct1
     
    Idx = Me.ListBoxNom.SelectedIndex
    NewObjet = New Struct1
    NewObjet.Age = Me.TextBoxAge.Text
    NewObjet.Ville = Me.TextBoxVille.Text
    Me.ListBoxNom.Items.Remove(Me.ListBoxNom.SelectedItem)
    Me.ListBoxNom.Items.Insert(Idx, NewObjet)
    et ça a l'air de bien fonctionner.

    Mais j'ai essayé cet autre code et ça a l'air de fonctionner aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NewObjet As Struct1
     
    NewObjet = CType(Me.ListBoxNom.SelectedItem, Struct1)
    NewObjet.Age = Me.TextBoxAge.Text
    NewObjet.Ville = Me.TextBoxVille.Text
    Me.ListBoxNom.Items.Item(Me.ListBoxNom.SelectedIndex) = NewObjet
    Je me dis que l'ancien objet n'etant plus référencé nul part une fois sorti de la Sub,
    le Garbage Collector doit se charger de sa destruction. Non ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 640
    Par défaut
    Je me dis que l'ancien objet n'etant plus référencé nul part une fois sorti de la Sub,
    le Garbage Collector doit se charger de sa destruction. Non ?
    C'est un Garbage Collector, pas un compteur de référence.
    Ce n'est pas à la sortie de la procédure (Sub) que l'ancien objet est libéré mais bien plus tard.

    La seconde version applique une pression sur la mémoire bien plus faible.
    Mais bon, c'est pas la fin du monde.

    De toute façon, aucune des 2 n'est faite pour correctement implémente le moindre Design Pattern comme MVC, MVP, MVVM, etc...

    Ce type de question ne se pose plus quand un commence à faire des programmes qui ne sont pas des jouets. (Règles métiers, Vues Synchronisées, DAL, etc...)

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 741
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 741
    Par défaut
    Je me ferais plutôt une liste d'objets structure, qui serait la datasource de la listbox; et c'est cette liste que je modifierais

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 57
    Par défaut
    Citation Envoyé par umfred Voir le message
    Je me ferais plutôt une liste d'objets structure, qui serait la datasource de la listbox; et c'est cette liste que je modifierais
    @umfred Merci pour ce conseil, je vais faire ça :-)

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

Discussions similaires

  1. modifier un élément dans une listBox
    Par sagesse dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/02/2011, 13h56
  2. Ajouter dynamiquement élements dans ListBox?
    Par roster dans le forum Silverlight
    Réponses: 10
    Dernier message: 02/04/2009, 21h36
  3. [Débutant] regroupement d'éléments dans une listBox
    Par fast&furious dans le forum Access
    Réponses: 2
    Dernier message: 15/10/2005, 15h05
  4. Griser Elément dans ListBox
    Par cjacquel dans le forum MFC
    Réponses: 5
    Dernier message: 06/04/2005, 10h12
  5. [debutant] supprimer elements dans une listbox
    Par F.F. dans le forum C++Builder
    Réponses: 8
    Dernier message: 02/07/2004, 11h38

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