Combobox multi-colonne...Quelle complication!

Résolu
cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012 - 20 mai 2010 à 15:36
 Steeve7 - 18 mars 2015 à 03:16
Bonjour à tous!

Et merci à l'avance de votre aide toujours si précieuse....

Pour une fille qui s'est mis à VB.net il y a moins d'un an(programmeure de Visual Basic pendant 10 ans), je dois avouer que je suis bien découragée de la question des combobox multi-colonnes...

1ere : il ne semble pas exister de combobox multi-colonnes avec les contrôles de bases de VB.net. J'ai dû ajouter le AxComboBox qui lui le permet.

2eme : Je ne trouve pas de façon d'agrandir la largeur de ma liste quand on l'ouvre de la même façon que Access le fait si bien...En résumé, la largeur de la liste est initialement de 100 et je veux que quand on l'ouvre, on puisse voir les 7 colonnes, que cette largeur passe à 800. Quand on la referme, elle devrait revenir à 100....

Pourquoi c'est si compliqué? Je m'y prend mal? Et s.v.p. ne me dites pas d'utiliser le combobox de base et de concaténer mes champs dans la requête(champ1 + ' ' +champ2), je veux que les colonnes soient délimités également et séparées par des barres...


Merci beaucoup!

 Maroxye

8 réponses

Utilisateur anonyme
22 mai 2010 à 14:17
Bonsoir,
A mon avis, il doit être possible de fabriquer ton propre contrôle.
Tu ajoute un UserControl a ton projet, dessus tu place un combobox traditionnel (qui ne contiendra rien) ainsi qu'une ListBox multicolones juste en dessous et avec sa propriété Visible a false.
Dans l'événement Clic du combobox tu fais apparaître ta ListBox (cet effet imitera une combobox multicolones).
Ceci reste une idée en tout cas.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
22 mai 2010 à 16:49
En effet il est très facile en .Net de créer des contrôles perso, en passant par le GDI on peut redessiner entièrement (ou presque) un contrôle comme un ListView, ComboBox, ListBox etc... et le faire hérité des propriété du contrôle de base.

Le problème c'est que la, Maroxye débute en .Net, ce n'est donc pas la solution.

Je pense qu'il faut que tu te serves d'autres contrôles, il faut que tu revois le design de ton formulaire pou procéder autrement (Exemple: pour une ligne avec ID, Nom, Prénom, Age dans ta base, tu peu décider de n'afficher que le nom dans le combo, et lors de la sélection dans celui-ci afficher les infos ailleurs, comme dans des labels par exemple).

La programmation Winform est très diférente de VBA comme tu peux t'en rendre compte.

Je te conseille de ne jamais passer par des Ax(sauf en cas d'extrême nécessité), et de n'utiliser toujours que des contrôles .Net cela facilite grandement le déploiement des application.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2010 à 18:55
Salut

Désolé pour .Net, j'ai moi aussi des galères avec dès que je tente qqchose, je passe mon temps dans l'aide pas toujours très directe et le boulot n'avance pas.

Bref, il semble que les ComboBox .Net ne supportent pas le colonnage tout comme celle de VB6 d'ailleurs, il n'y a que les "zones de liste modifiables" de Forms2 du VBA qui le propose.

Pour ce qui est de la liste proposée lors d'un DropDown, tu peux modifier la taille de la DropDownList avec les propriétés DropDownWidth et DropDownHeight

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012
20 mai 2010 à 21:11
Merci de ta réponse,

Mais les propriétés dropdownwidth et dropdownheight ne sont pas disponibles avec le AxComboBox...Quelqu'un a une autre idée?

 Maroxye
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012
22 mai 2010 à 19:23
Merci à banana etr Mayzz,

Je vais essayer tout ce que vous avez dit...Je comprend qu'à date, je n'ai vu que les problèmes que le .net m'apportait sans en voir encore les bénéfices...Question d'habitude vous me direz....Mayzz, un simple ajout à ce que tu dis : je veux que les colonnes soient montrées dans la liste avant que l'utilisateur porte son choix sur une ligne, c'est obligatoire...Ensuite, je vais effectivement montrer les colonnes qu'il a choisi dans des labels mais seulement après....


En tout cas, merci!

 Maroxye
0
cs_erdna Messages postés 22 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 27 août 2010
7 juil. 2010 à 05:53
0
cs_erdna Messages postés 22 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 27 août 2010
7 juil. 2010 à 09:39
Pour ne pas utiliser un Activex, comme c'est la cas dans la source précédente, la meilleure source que j'ai trouvé jusqu'à maintenant est à: http://www.codeproject.com/KB/architecture/MultiColumnFlatCombo.aspx
0
bonjour voici une réponse à votre fameuse question mais cela risque de décourager les amateurs de vb.net c'est le lien d'un tuto :
http://olsimare.developpez.com/articles/vbnet/combobox/multicolumncombobox/
0
Rejoignez-nous