keopsk
Messages postés96Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 9 mars 2007
-
21 févr. 2007 à 19:35
keopsk
Messages postés96Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 9 mars 2007
-
22 févr. 2007 à 12:30
Bonjour,
J'ai une liste de référence que je dois afficher dans une liste déroulante. Jusqu'à présent j''utilise une combobox pour sélectionner un élément. Pour savoir quel élément a été selectionné je récupére tout simplement son index.. Mon problème actuelle est que, désormais, chaque élément de liste est identifiable par une référence unique. Au lieu de récupérer l'index je dois récupérer la réference de l'élement sélectionnné.. Visiblement la combobox n'est pas adaptée à ce problème..
Qq saurait s'il existe un autre objet permettant de résoudre mon pb.. je peux toujours garder ma combobox et gérer la correspondance entre les index et les références des élements par code. mais s'il existe un objet pouvant faire cela c'est mieux
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 22 févr. 2007 à 10:32
Une autre solution, pas forcément géniale non plus (pourquoi les ComboBox d'ACCESS n'exitent pas en VB, je vous le demande !), mais pourquoi pas ...
Ta ComboBox est alimentée je suppose, puisque tu parles d'index, par une méthode addItem.
Tu pourrais créer une 2ème ComboBox que tu laisses en invisible, qui est alimentée en même temps que ta première avec cette fois ta référence.
Un truc du genre :
Boucle d'alimentation (For, Do While, ce que tu veux)
ComboRéférence.additem Référence
ComboLibellé.additem Libellé
Boucle
De cette manière, un même numéro d'index désignera la même chose dans les deux comboBox. Et quand dans la combo libellé, tu en sélectionneras un, tu vas récupérer la référence dans la combo référence en utilisant l'index.
keopsk
Messages postés96Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 9 mars 2007 21 févr. 2007 à 19:56
Bonjour Exploreur, finablement toujours serviable,
La commande combo1.text va me retourner le texte (visible) de l'élément selectionné.
Peut être que ma question n'était pas très claire.
Je dispose d'un tableau de 2 colonnes (col 1 référence, col 2 libellé). Dans la combo je dois afficher les libéllés. Lorsque je sélectionne un libellé je dois récupéréer sa référence.. . Avant je récupérais l'index de l'élément séléctionné pour savoir quel libellé a été sélectionné, mais il y a des modif dans les spéc.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 févr. 2007 à 21:22
Bonsoir Keops,
Bonsoir Exploreur,
Je dirais qu'exploreur a fort bien répondu.
Sous VB6 (sous-forum dans lequel tu as "posté") les combobox ne peuvent posséder plus d'une colonne !!!
Alors : sous quoi, finalement, développes-tu ?
keopsk
Messages postés96Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 9 mars 2007 21 févr. 2007 à 21:30
Bonsoir jmfmarques
Justement mon problème vient du fait que les combo ne peuvent pas posséder plus d'une colonne.
La solution serait de trouver une autre objet sinon , comme je disais plus haut , faire les correspondance index/reférence pas le code
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 févr. 2007 à 21:36
Ben alors !
Utilise une listview, pardi !
Mais si tu tiens à continuer avec une Combo et que tu ne crains pas de faire un peu ramer ton appli :
Envoie donc dans ta Combo tes deux données séparées par un tab (ce qui t'obligeras ensuite, à chaque lecture, à "éclater" à nouveau en 2 parties).
Où est donc ton problème ?
Ceci dit : l'utilisation d'une listview me parait tout-à-fait conseillée ...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 févr. 2007 à 23:04
Su tu n'aimes pas la listview et que (je te le répête) tu tiens à rester avec une combobox, qu'à cela ne tienne !
Je t'ai dit plus haut comment faire (sépare par des tabs puis gère à la lecture en "éclatant" par rapport à tes tabs).
C'est un choix à faire et que TU devras faire .
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 févr. 2007 à 11:46
Si c'est pour des raisons d'occupation d'affichage, il te suffit d'ajouter une scrollbar verticale et de jouer avec pour augmanter ou diminuer à la demande la hauteur de la listview.
Pour des raisons de commodité, tu veux enfin la reréduire à son minimum lors de l'événement Form-MouseMove....
keopsk
Messages postés96Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 9 mars 2007 22 févr. 2007 à 12:30
Merci à tout le monde d'avoir participer à mon problème. La solution qui me parait la plus simple est celle de Molenn, même si le fait d'ajouter des objets graphiques pour ce genre de manipulation n'est pas très recommandable... Mais je pense que c'est la solution la plus simple