Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMMENT FAIRE DES COMBOBOX MULTICOLONNES (UN EXEMPLE QUI MARCHE)


Information sur la source

Catégorie :VB.NET Niveau : Initié Date de création : 08/01/2004 Vu : 8 462

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

J'ai chercher sur pas mal de site sans trouver la réponse à ce problème. Je souhaitais faire une combobox avec plusieurs colonnes (visibles ou non visibles) dans laquelle j'insérait mes données, mais aussi une clé primaire (de type numérique ou alphanumérique) que je ne souhaitais pas voir apparaitre.
Pour cela une combobox a plusieurs colonnes était la solution, mais impossible de trouver un exemple ou une aide qui fonctionnait de A à Z.


 

Source

  • Dans un premier tems, il faut rajouter dans les références de vos sources l'objet Microsoft forms 2.0 combobox, car le combobox de base de visual studio ne gère pas le muliticolonne.
  • Ensuite, pour faire plusieurs colonne dans ce dernier, insérer les ligne de codes suivantes :
  • MyCombo.AddItem("key11")
  • MyCombo.set_Column(1, 0, "test12")
  • MyCombo.set_Column(2, 0, "test13")
  • MyCombo.AddItem("key21")
  • MyCombo.set_Column(1, 1, "test22")
  • MyCombo.set_Column(2, 1, "test23")
  • MyCombo.AddItem("key31")
  • MyCombo.set_Column(1, 2, "test32")
  • MyCombo.set_Column(2, 2, "test33")
  • ...
  • MyCombo.AddItem("keyx1")
  • MyCombo.set_Column(1, 3, "testx2")
  • MyCombo.set_Column(2, 3, "testx3")
  • Pour récupérer la clé de l'élément sélectionner dans votre combo utiliser le code suivant :
  • MsgBox(MyCombo.get_Column(0, MyCombo.get_ListIndex()) )
  • Pour que votre clé n'apparaissent pas, regarder dans les propriétés de l'objet, vous devez mettre un truc dans le genre :
  • ColumnCount = 3
  • ColumnWidths = 0pt;100pt;100pt
  • Ensuite fait mumuse avec le reste des propriétés pour personnaliser votre combo
Dans un premier tems, il faut rajouter dans les références de vos sources l'objet Microsoft forms 2.0 combobox, car le combobox de base de visual studio ne gère pas le muliticolonne.

Ensuite, pour faire plusieurs colonne dans ce dernier, insérer les ligne de codes suivantes :

        MyCombo.AddItem("key11")
        MyCombo.set_Column(1, 0, "test12")
        MyCombo.set_Column(2, 0, "test13")

        MyCombo.AddItem("key21")
        MyCombo.set_Column(1, 1, "test22")
        MyCombo.set_Column(2, 1, "test23")

        MyCombo.AddItem("key31")
        MyCombo.set_Column(1, 2, "test32")
        MyCombo.set_Column(2, 2, "test33")

        ...

        MyCombo.AddItem("keyx1")
        MyCombo.set_Column(1, 3, "testx2")
        MyCombo.set_Column(2, 3, "testx3")

Pour récupérer la clé de l'élément sélectionner dans votre combo utiliser le code suivant :

MsgBox(MyCombo.get_Column(0, MyCombo.get_ListIndex()) )

Pour que votre clé n'apparaissent pas, regarder dans les propriétés de l'objet, vous devez mettre un truc dans le genre :


ColumnCount = 3
ColumnWidths = 0pt;100pt;100pt

Ensuite fait mumuse avec le reste des propriétés pour personnaliser votre combo


Conclusion

Voila, j'espère que ça vous aidera, c'est tout con comme truc, mais quand on sait pas on chercher un bon moment.


 

Commentaires et avis

signaler à un administrateur
Commentaire de NHenry le 08/01/2004 12:25:29

Merci, je savais pas avant comment faire. G pas encore tester :-))

signaler à un administrateur
Commentaire de lataupeben le 08/01/2004 13:05:41

j'ai failli te renvoyé vers ta source quant j'ai vu ton message sur le forum

signaler à un administrateur
Commentaire de philoo91 le 09/01/2004 08:21:06

Ouias sauf que la méthode "set_Column" sur l'objet combo que tu cites n'existe pas c'est la méthode column qu'il faut employer

Ainsi ton exemple deviens :

ComboBox1.AddItem ("key11")
        ComboBox1.Column(1, 0) = "test12"
        ComboBox1.Column(2, 0) = "test13"

        ComboBox1.AddItem ("key21")
        ComboBox1.Column(1, 1) = "test22"
        ComboBox1.Column(2, 1) = "test23"

        ComboBox1.AddItem ("key31")
        ComboBox1.Column(1, 2) = "test32"
        ComboBox1.Column(2, 2) = "test33"

        ComboBox1.AddItem ("keyx1")
        ComboBox1.Column(1, 3) = "testx2"
        ComboBox1.Column(2, 3) = "testx3"

signaler à un administrateur
Commentaire de SDan le 09/01/2004 09:00:03

Bonne idée

signaler à un administrateur
Commentaire de piwy le 09/01/2004 09:14:54

bonjour philoo91,

les propriétés diffèrent peut-être en fonction de la version de ton objet (je suis avec le Microsoft Forms 2.0 Combobox ) et peut-être d'autres paramètres qui rentrent en compte (je suis en VB.NET, le service pack joue peut-être aussi ... ).

Mais, il est toujours bon d'avoir quelqu'un qui donne un autre exemple ...

signaler à un administrateur
Commentaire de philoo91 le 09/01/2004 09:22:59

VB NET cherche pas j'en suis toujours avec Visual studio 6 professionnel sous WIN 2000 pro patché
Mais l'os ici on s'en fou
C'est chiant quand meme tu change d'outil de dev et tes méthodes / proprio et events sur tes objeyts sont différents !
Bijour la compatibilité ascendante .....

signaler à un administrateur
Commentaire de bbcluny le 09/01/2004 10:14:48

Merci pour l'idée de base.
Pour modifier la largeur des colonnes (sous VB6) :

         ComboBox1.ColumnWidths = "0; 100; 100"

signaler à un administrateur
Commentaire de sam25 le 08/06/2004 15:36:48

Alors la je n'ai qu'une seule chose a dire....

Je t'aime !! Ca fait une plombe que je cherche comment faire.

signaler à un administrateur
Commentaire de Fab53 le 25/02/2005 11:18:25

C cool sa m'a trop aidé, par contre quand on sélectionne une info, la deuxieme colonne ne s'affiche pas. comment on fait pour l'afficher?

signaler à un administrateur
Commentaire de piwy le 25/02/2005 12:02:29

Très bonne question ...

Le controle apparement ne gère pas l'affichage de plusieurs colonnes en en-tête.

J'ai essayé de voir en jouant avec les longueurs des colonnes et les évènements, mais cela ne fonctionne pas bien.

J'essayerai de regarder ça plus tranquillement ce week-end, la malheureusement je n'ai pas trop le temps ...


signaler à un administrateur
Commentaire de piwy le 25/02/2005 12:02:51

Très bonne question ...

Le controle apparement ne gère pas l'affichage de plusieurs colonnes en en-tête.

J'ai essayé de voir en jouant avec les longueurs des colonnes et les évènements, mais cela ne fonctionne pas bien.

J'essayerai de regarder ça plus tranquillement ce week-end, la malheureusement je n'ai pas trop le temps ...


signaler à un administrateur
Commentaire de sony20 le 20/04/2005 17:06:34

j'aimerai bien l'utiliser, mais je n'ai pas les paramètres additem et set_column pour le combobox (même en installant microsoft forms 2.0) ...
J'ai microsoft .NET Framework 1.0 et Development Environment 2002
C'est ca le problème ?
Merci d'avance

signaler à un administrateur
Commentaire de sony20 le 20/04/2005 17:06:37

j'aimerai bien l'utiliser, mais je n'ai pas les paramètres additem et set_column pour le combobox (même en installant microsoft forms 2.0) ...
J'ai microsoft .NET Framework 1.0 et Development Environment 2002
C'est ca le problème ?
Merci d'avance

signaler à un administrateur
Commentaire de sony20 le 20/04/2005 17:06:46

j'aimerai bien l'utiliser, mais je n'ai pas les paramètres additem et set_column pour le combobox (même en installant microsoft forms 2.0) ...
J'ai microsoft .NET Framework 1.0 et Development Environment 2002
C'est ca le problème ?
Merci d'avance

signaler à un administrateur
Commentaire de piwy le 20/04/2005 17:15:52

Salut,

ce problème vient des DLL que tu utilises, c'est un problème assez récurrent.

En effet, le fait de ne pas utiliser les composants .NET pose parfois des problèmes.

Le plus propre (maintenant que je sais le faire je peux l'expliquer), est de surcharger la classe combobox.net en utilisant le tag pour y stocker un tableau des infos dont on a besoin.

Je te conseil cette voix en matière de propreté, maintenant si tu souhaite encore utiliser mon exemple, voila un lien ou tu trouveras les DLLs que j'utilise.

http://piwy.plop.free.fr/bin.zip

Supprime de tes références tout les AXMS.... et ré-insère ces DLL.

En espérant que cela t'aidera.

signaler à un administrateur
Commentaire de Ouneufe le 26/12/2007 09:41:09

j'utilisais ce contrôle avec beaucoup de satisfaction jusqu'au moment il m'a fallu déployer mon appli. Là, c'est le drame, car microsoft forms 2 ne fonctionne pas sur les systèmes dépourvus de Microsoft Office...

signaler à un administrateur
Commentaire de JLN le 11/05/2008 11:31:41

J'ai pas essayé de déployer avec Microsoft Forms 2 sur des postes dépourvu d'office, mais l'information est intéréssante au plus au point, je n'utiliserai plus cela, tant pis je m'en passais avant, je m'en passerai après...

Merci pour l'info Ouneufe

Bonne prog a tous.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.