Combobox multi-colonne...Quelle complication! [Résolu]

cs_Maroxye 177 Messages postés vendredi 3 novembre 2000Date d'inscription 16 octobre 2012 Dernière intervention - 20 mai 2010 à 15:36 - Dernière réponse :  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
Afficher la suite 

Votre réponse

8 réponses

Utilisateur anonyme - 22 mai 2010 à 14:17
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 22 mai 2010 à 16:49
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Mayzz
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 20 mai 2010 à 18:55
0
Utile
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)
Commenter la réponse de cs_Jack
cs_Maroxye 177 Messages postés vendredi 3 novembre 2000Date d'inscription 16 octobre 2012 Dernière intervention - 20 mai 2010 à 21:11
0
Utile
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
Commenter la réponse de cs_Maroxye
cs_Maroxye 177 Messages postés vendredi 3 novembre 2000Date d'inscription 16 octobre 2012 Dernière intervention - 22 mai 2010 à 19:23
0
Utile
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
Commenter la réponse de cs_Maroxye
cs_erdna 22 Messages postés lundi 19 juin 2006Date d'inscription 27 août 2010 Dernière intervention - 7 juil. 2010 à 05:53
Commenter la réponse de cs_erdna
cs_erdna 22 Messages postés lundi 19 juin 2006Date d'inscription 27 août 2010 Dernière intervention - 7 juil. 2010 à 09:39
0
Utile
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
Commenter la réponse de cs_erdna
0
Utile
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/
Commenter la réponse de Steeve7

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.