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 :

item listbox system.data.datarowview


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 21
    Points
    21
    Par défaut item listbox system.data.datarowview
    Bonjour,

    J'ai 2 listebox, quand je double-clic sur un item de la première je souhaite que celui-ci arrive dans la deuxième. Classique.

    J'ai tapé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ListBox1_DoubleClick
    ListBox2.Items.Add(ListBox1.SelectedItem)
    End Sub
    A la place de l'item dans la listbox2 j'ai ça :

    system.data.datarowview

    Quelqu'un a une idée ?
    N'y a t'il pas une propriété de la listbox1 à régler ?

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par gelwc Voir le message
    Quelqu'un a une idée ?
    N'y a t'il pas une propriété de la listbox1 à régler ?
    Regarde du coté de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ListBox1.ValueMember = "NomDeLaColonneDeValeur"
            ListBox1.DisplayMember = "NomDeLaColonneAAfficher"
    je sais que j'ai déjà eut se problème et que ca venait de là...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    en réalité, ce comportement est tout à fait classique en DotNet. Si le type de DataSource est complexe, et que les informations du style ValueMember/DisplayMember, les contrôles utilisent par défaut le .ToString() de l'élément.

    Dans ton cas, je pense que ListBox1 est alimentée par une datatable/dataview, et donc le SelectedItem représente la DataRow/DataRowView sélectionnée.

    Un peu comme le dit Sankasssss, il faut spécifier à ListBox2 quelles sont les colonnes DisplayMember/ValueMember.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    merci pour vos réponses

    La listbox1 est effectivement chargée avec une colonne d'une datatable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Accueil_savon_Load
            Me.GrasTableAdapter1.Fill(Me.BDD_SAVONDataSet1.Gras)
            ListBox1.DataSource = Me.BDD_SAVONDataSet1.Gras
            ListBox1.DisplayMember = "NOM"
    End Sub
     
    Private Sub ListBox1_DoubleClick 
            ListBox2.Items.Add(ListBox1.SelectedItem)
    End Sub
    Je ne comprend pas bien vos réponses.
    J'ai déjà spécifiée la colonne "NOM" pour remplir la lisbox1. Il faut faire la même chose pour la listbox2 ?? Etrange.

    En fait j'ai remplacé

    ListBox2.Items.Add(ListBox1.SelectedItem) par ListBox2.Items.Add(ListBox1.Text)

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par gelwc Voir le message
    J'ai déjà spécifiée la colonne "NOM" pour remplir la lisbox1. Il faut faire la même chose pour la listbox2 ?? Etrange.
    Bien sur qu'il faut faire pareil pour la listBox2 vu que c'est un datarow que tu insère dedans via ListBox2.Items.Add(ListBox1.SelectedItem)
    Donc pour bien faire il doit savoir quel colonne afficher... ... je ne trouve pas cela étrange

    Citation Envoyé par gelwc Voir le message
    En fait j'ai remplacé

    ListBox2.Items.Add(ListBox1.SelectedItem) par ListBox2.Items.Add(ListBox1.Text)
    C'est aussi valable, mais ca a le désavantage que tu n'a plus accès au autre colonne contenue dans ta row.

    Mais si tu n'en as pas besoin...

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

Discussions similaires

  1. listBox1.SelectedValue => System.Data.DataRowView
    Par zouuc dans le forum Windows Presentation Foundation
    Réponses: 18
    Dernier message: 02/12/2010, 11h27
  2. VS 2008 System.Data.DataRowView
    Par Stoutain dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/11/2010, 11h33
  3. Réponses: 7
    Dernier message: 20/07/2009, 21h42
  4. [vs2003] c# combobox System.Data.DataRowView
    Par wayak3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/06/2009, 11h12

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