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 :

combobox et tostring


Sujet :

VB.NET

  1. #1
    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 combobox et tostring
    bonjour

    il me semble que quand on mets un objet dans item d'un combobox, celui ci appelle tostring pour afficher quelque chose

    hors je viens de tester mon combobox est bien rempli mais de vide
    enfin il n'y a rien d'écrit
    alors que l'objet que j'ai mis dedans, quand je fais tostring dessus, ca me répond bien un texte (j'ai codé le tostring moi meme en plus)

    y a quelques jours je croyais avoir trouvé le truc mais en fait non ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Par défaut
    Ben pourquoi tu appel pas la methode toString dans ta ComboBox??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Combobox.Items.add(objet.attribut.toString)

  3. #3
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Tiens, c'est marrant, chez moi, ça marche...
    Tu as mis un point d'arret dans ton ToString ?

    @BouBonne : mettre les objets au lieu des tostring dans la combobox, ça permet d'y faire référence plus facilement dans les cas ou il n'y a pas que le tostring qui t'intéresse.
    Sinon, pour accéder à l'objet sélectionné, t'es obligé de jouer avec des indexes...

  4. #4
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    C'est curieux... Si tu as une succession d'héritages, es-tu sûr que ce soit la bonne surcharge de ToString() qui soit appelée et pas une des classes de base ?

  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
    je ne passe pas dans le tostring, donc le combobox n'appelle pas le tostring

    y a des propriétés bizarres sur le combobox (formattingenabled et autre) ...

    m'enfin je vois pas ...

    quand je fais tostring sur mon objet ca me reponds bien du texte mais quand je fais cmb.items.add(lememeobjet) le combobox se remplit bien mais n'affiche rien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Hmmm.
    Et t'as essayé d'y ajouter un objet d'une autre classe bidon, histoire de vérifier que c'est un paramètre bizarre de la combobox et non un problème du genre ce qu'évoque bcmdev ?

  7. #7
    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 semaine dernière j'avais essayé sur une autre classe et pareil
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    mais quand je fais cmb.items.add(lememeobjet) le combobox se remplit bien mais n'affiche rien
    J'ai déjà observé les mêmes symptômes sur certains postes utilisateurs (Win XP) : il y avait le bon nombre d'éléments dans la liste, mais rien affiché ! Cela semblait provenir de la config Windows. As-tu essayé sur d'autres postes ?

  9. #9
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour.

    Question bête : est-ce que l'objet que tu as mis en item posséde bien une méthode ToString qui rend quelque chose ?

    Exemple, je me fais une classe bagnole avec un nom et une marque :
    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
     
    Public Class bagnole
        Private strMarque As String
        Private strNom As String
        Public Sub New(ByVal marque As String, ByVal nom As String)
            strMarque = marque
            strNom = nom
        End Sub
        Property marque() As String
            Get
                Return strMarque
            End Get
            Set(ByVal value As String)
                strMarque = value
            End Set
        End Property
        Property Nom() As String
            Get
                Return strNom
            End Get
            Set(ByVal value As String)
                strNom = value
            End Set
        End Property
    End Class
    Si je l'utilise en combo comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            Me.ComboBox1.Items.Add(New bagnole("reno", "super5"))
            Me.ComboBox1.Items.Add(New bagnole("reno", "safreine"))
            Me.ComboBox1.Items.Add(New bagnole("reno", "lagouna"))
            Me.ComboBox1.Items.Add(New bagnole("Aux pelles !", "Corsica"))
            Me.ComboBox1.Items.Add(New bagnole("Aux pelles !", "Saphira"))
    Dans le combo, comme j'ai pas définit le displaymember, j'ai le nom de la class pour chaque élément (à savoir ici machinapplication.bagnole).

    Si je rajoute dans la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Overrides Function ToString() As String
        Return Me.Nom
    End Function
    J'affiche bien le nom et plus besoin de displaymember.

    Comme toi tu n'as rien, ça laisserait entendre que le ToString est surchargé quelque part ou que la reflection pour récupérer le nom de la class ne marche pas (j'y crois pas trop).

    A voir peut être.

    Cdt.

  10. #10
    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
    oui c'est une classe que j'ai écrite, j'ai overridé le tostring
    et quand je fais msgbox instance.tostring au meme endroit que cmb.items.Add(instance), le messagebox m'affiche bien du texte
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Re.

    Oups, mon edit et ton post se sont croisés !

    Comment il est ton overrides de ToString ?

    Est-ce que tu as un displaymember qui traîne ?

    Cdt.

  12. #12
    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
    bon bah je ne vais pas chercher à comprendre mais ca se met à fonctionner ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Une autre possibilité : tu n'aurais pas renseigné le DisplayMember ?

  14. #14
    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
    Citation Envoyé par BCmDev Voir le message
    Une autre possibilité : tu n'aurais pas renseigné le DisplayMember ?
    non ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 18h26
  2. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 18h35
  3. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 10h55
  4. combobox et readonly
    Par Mac leod dans le forum C++Builder
    Réponses: 6
    Dernier message: 28/11/2002, 11h27
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 16h43

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