Construire un composant Combobox ou ListBox multicolonnes

echoupe Messages postés 21 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 15 mars 2007 - 5 juil. 2005 à 13:53
echoupe Messages postés 21 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 15 mars 2007 - 6 juil. 2005 à 10:31
Salut à tous!
Je cherche depuis plusieurs jours déjà les éléments pour réaliser un composant combobox multicolonnes en VB6 sans grand succès. J'ai rencontré pourtant un exemple (ocx combobox multicolonnes) réalisé par un certain mais hélas sans code source. Toute proposition sera la bienvenue. Réagissez vite SVP.

6 réponses

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
5 juil. 2005 à 14:03
le combobox de vb6 ne supporte pas les multicolonnes mais tu peux utiliser le combobox de Microsoft Forms 2.0 (FM20.DLL) qui est inclus dans VB6

Appuis (CTRL+T) coche Microsoft Form 2.0 Object Library
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
5 juil. 2005 à 14:24
Bonjour,

Pour une ListBox, dans un Module:



Option Explicit



Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _


(ByVal hwnd As Long, ByVal wMsg As Long, _


ByVal wParam As Long, lParam As Any) As Long



Public Const LB_SETTABSTOPS = &H192



Dans la Form



Private Sub Form_Load()

ReDim TabStop(0 To 2) As Long



'on positionne les tabulations

TabStop(0) = 50

TabStop(1) = 100

TabStop(2) = 150



'on efface puis on réinitialise les tabulations

Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 0&, ByVal 0&)

Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 3, TabStop(0))

List1.Refresh



List1.AddItem "Colonne 1" & vbTab & "Colonne 2" & vbTab & "Colonne 3"

List1.AddItem "Jean" & vbTab & "Michel" & vbTab & "Jean-Michel"

End Sub



jpleroisse
0
echoupe Messages postés 21 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 15 mars 2007
5 juil. 2005 à 16:08
Le combobox multi de Microsoft Forms 2.0 (FM20.DLL) est déconseillé, c'est la raison pour laquelle j'ai voulu créer un composant.
jpleroisse, j'ai essayé ton astuce mais il ne marche pas merci néanmoins de ta promptitude.
Je continue d'attendre votre aide, quelqu'un qui aurait eu la même idée que moi mais plus avancé dans la recherche de la solution.
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
5 juil. 2005 à 18:28
Re,

Je ne comprend pas, ce code fonctionne très bien chez moi, j'ai 3 colonnes dans ma ListBox et les noms dans chaque colonne.



jpleroisse
0

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

Posez votre question
cs_trouduc Messages postés 56 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 28 septembre 2005
6 juil. 2005 à 08:30
'met tout ca dans une form

Option Explicit


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long


Private Const LB_SETTABSTOPS = &H192


Private Sub Form_Load()
ReDim TabStop(0 To 2) As Long

'on positionne les tabulations
TabStop(0) = 50
TabStop(1) = 100
TabStop(2) = 150

'on efface puis on réinitialise les tabulations
Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 0&, ByVal 0&)
Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 3, TabStop(0))
List1.Refresh


List1.AddItem "Colonne 1" & vbTab & "Colonne 2" & vbTab & "Colonne 3"
List1.AddItem "Jean" & vbTab & "Michel" & vbTab & "Jean-Michel"
End Sub
0
echoupe Messages postés 21 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 15 mars 2007
6 juil. 2005 à 10:31
Trouduc tu as raison excuses moi ça marche.
Mais vois-tu cette façon de procéder me donne l'impression d'être un peu limite pcq j'aurais par exemple besoin à un moment donné de cacher par exemple certaines colonnes du combo, d'afficher une bulle au passage de la souris sur un item, ...
0
Rejoignez-nous