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

Windows Forms Discussion :

[VB.NET][ComboBox] Pb Affichage d'après ArrayList


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Points : 137
    Points
    137
    Par défaut [VB.NET][ComboBox] Pb Affichage d'après ArrayList
    Bonjour,

    Voilà la situation (sous Visual Studio 2003) (cf. zip joint) :

    Dans un Form, j'ai 3 ComboBox dont le DataSource est le même et correspond à un ArrayList rempli de quelques objets issus d'une classe nommée Voiture.

    Chaque ComboBox à la même valeur pour la propriété ValueMember et a pour la propriété DisplayMember une des propriétés de la classe Voiture (3 propriétés : id, couleur, marque et chaque valeur de propriété est unique -> pas deux couleurs identiques ou marques ou id).

    Quand je sélectionne un des ComboBox, cela met à jour les deux autres.
    Mais cela ne marche que si je sélectionne à partir du deuxième item.

    Je ne comprends pas pourquoi...

    Dans le zip fourni, faites l'essai, si vous sélectionnez rouge, rien ne se passe, et si vous relancez l'appli, et sélectionnez une autre couleur ça marche...
    Le plus étrange est que si une fois tous les ComboBox ont une valeur, alors ça marche aussi pour les premiers items de chaque ComboBox...

    Merci de votre aide !
    Fichiers attachés Fichiers attachés

  2. #2
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Bonjour,

    Ton problème vient de CurrencyManager, la classe qui gère le binding des controls.

    Par défaut la position minimum est 0
    Tu as du remarquer que l'index des combos est forcé à 0 lors d'une liaison à une DataSource (Ce n'est pas par hazard)

    Donc que tu sois positionné sur le premier enregistrement ou pas, cela revient au même.

    Cela veut dire que lorsque tu choisis le premier élement de ta liste (index 0), il ne peut pas detecter de changement.

    Tu peux essayer de choisir le premier élement de tes 2 premieres listes, la 3eme liste ne bougera pas.

    Si tu choisi, un index>0, la position va changer et donc envoyer un message aux controls "bindés"

    Maintenant, on peut contester le fonctionnement du CurrencyManager qui n'a pas prévu la position -1, mais en y reflechissant cette position n'est plus sélectionnable une fois les données affichées.

    Pour résoudre ton problème, tu es obligé de te positionner sur le premier enregistrement.
    Tu peux éventuellement créer un enregistrement vide...

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Points : 137
    Points
    137
    Par défaut oups... dommage...
    Bonjour,

    Merci pour ces explications, cela explique mieux pourquoi aucun changement n'a lieu...
    Pourtant, c'est bizarre, mais je peux mettre la propriété du ComboBox, SelectedIndex, à -1 au début, et ça me cache bien la zone...

    Mais c'est vrai que j'ai noté que ça revenait tout seul sans comprendre à l'index 0...

    Je suis un peu déçu de .NET sur le ComboBox, pas d'auto-completion, pas de propriété OnKeyEnter (ou qch comme ça) pour passer directement au contrôle suivant (je dois faire un test sur l'événement KeyPress).

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/10/2011, 15h23
  2. [VB.NET] Pb d'affichage dans des COMBOBOX
    Par stephane77fr dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/08/2007, 15h46
  3. [VB.NET] ComboBox lien entre deux tables
    Par VDB1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/07/2004, 12h15
  4. [VB.NET] Probleme d'affichage de controle
    Par mic56 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/06/2004, 15h03
  5. [CR][ASP.NET] Problème d'affichage du rapport
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 20/04/2004, 12h39

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