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 !

DLL LISTBOX ET COMBOBOX MULTI COLONNES


Information sur la source

Catégorie :VB.NET Source .NET ( DotNet ) Niveau : Initié Date de création : 17/12/2003 Date de mise à jour : 07/05/2005 16:02:36 Vu / téléchargé: 18 640 / 4 486

Note :
9,83 / 10 - par 6 personnes
9,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Cliquez pour voir la capture en taille normale
Cette DLL est la suite de la précédente mais le l'ai regroupée avec la précédente
Elle fait comprend une ComboBox multicolonnes et une listBox multicolonnes
plus simple à paramétrer que ce satané ListView de VB.NET bien Nul (Limite en taille avec plantage) par rapport à celui de VB6
Je pensais bien que vous alliez me le demander.
Tout est dit dans le RTF sinon demandez le moi.

 

Conclusion

Modifications apportées
Passage du paramêtre titre lors de la définition de la ListBox
Simplification du code lors de l'emploi dans la form
pour le dessin de la bare de titre de la ListBox
Mise à jour du 9/01/2004 porte sur:
Ajout de la possibilité de masquer la colonne clé tant pour la ComboBox Que pour la listBox. Propriété HideColumnCle boolean


 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

07 mai 2005 16:02:36 :
Masquage de la propriété Multicolonne pour listbox qui marchait à l'envers (Microsoft) et parasitait l'affichage de la ligne sélectionnée Entête de la listeBox qui ne marchait pas sur un panel ou un tabcontrol.

Commentaires et avis

signaler à un administrateur
Commentaire de Fraggy le 18/12/2003 01:59:03

Excellente idée ... dommage que cette source soit une fois de plus
une source .NET . Mais pourquoi toutes les meilleures choses se
trouvent que en .NET :(( (j'ai démaré VB6 y a environ 6 mois)

Sinon, sur le principe je mets 9/10 (et oui je ne peux pas tester)
Si il y a une identique en VB6, je suis prenneur ;)

signaler à un administrateur
Commentaire de labout le 18/12/2003 09:17:40

Merci,
Parceque VB.NET est appelé à remplacer VB. C'est un produit plus stable et qui offre beaucoup plus de possibilités. En conséquence je n'y investit plus de temps.


signaler à un administrateur
Commentaire de Shivan0910 le 18/12/2003 14:40:22

mais le fait que ce soit une dll ne le rend pas exploitable sous vb6 ??
qu'est ce qu'il faudrait pour que ca marche sur vb6 ???
en tout cas toujours super bien !!

signaler à un administrateur
Commentaire de labout le 18/12/2003 15:39:37

Non hélas pour toi, j'ai essayé de l'ajouter en référence dans VB6 mais cela plante. Les Dll .NET ne semblent pas utilisables en VB6.
Pose la question sur le forum car je ne sais pas.
Salut et désolé.

signaler à un administrateur
Commentaire de sibi12 le 18/12/2003 20:14:07

Salut,

VB6 peut implementer des DLL COM, DCOM, COM+ ou d truc comme ça, basé sur l'ATL.
Une DLL .Net  utilise une autre architecture donc pour pouvoir lire cette DLL tu dois le faire en utilisant le "bas niveau" avec tout une série de Declare Function tatata....
Donc très lourd à faire de plus tu doit t'assurer que la machine ou le programme est installé a le framework...
Je ne connais pas les fonctions pour implementer la DLL mais elle doivent, en principe,  se trouver sur le site microsoft

A+

signaler à un administrateur
Commentaire de Shivan0910 le 19/12/2003 13:05:53

merci pour les infos

signaler à un administrateur
Commentaire de dyka le 06/12/2005 17:57:43

On se demande bien pourquoi ce n'est pas un contrôle standard du framework. En tout les cas, les contrôles fonctionnent très bien. J'ai juste une question : est-il possible de modifier la position de la dropdown list.
Par défaut, elle a la taille de la combobox, on peut l'élargir mais j'aimerais que le rectangle soit dessiner de l'autre côté. Est-ce possible ?
Merci pour les infos

signaler à un administrateur
Commentaire de labout le 06/12/2005 19:10:17

sans doute, il faut essayer le code source est fourni

signaler à un administrateur
Commentaire de sidar le 28/04/2006 19:00:31

Voila mon problème, j'utilise actuellement une listbox pour afficher les données d'un ARRAYLIST (mesVariables) qui pour chaque enregistrement contient 3 données (AdresseVariable , MnemoVariable et CommentaireVariable), ce qui donne le code suivant:
For Each maVar In EcranPrincipal.mesVariables
    ListBox1.Items.Add(maVar.AdresseVariable & "  " & _
    maVar.MnemoVariable & "   " & maVar.CommentaireVariable)
Next
Bon ça marche mais question alligement des colonnes, c'est pas terrible et je n'ais pas forcemment l'intention de calculer la longueur de chaque donnée pour ajuster mon nombre d'espaces.
J'ai donc récupéré la DLL et je suis confronté à un petit problème:
je réussi bien à créer mes trois colonnes, le nombre d'enregistrements correspond bien au nombre d'enregistrements de mon ARRAYLIST, mais je ne réussi pas à afficher correctement le contenu de chaque AdresseVariable , MnemoVariable et CommentaireVariable dans les lignes de la listbox multicolonne (j'ai dans les 3 colonnes le nom du namespace de mes variables pour chacun des 8000 enregistrements, ce qui ne m'avance pas beaucoup).
Voici le code que j'ai mis en place et qui donne ce résultat:
With MultiListBox1
                .DataSource = EcranPrincipal.mesVariables
                .Columns.Add(New ListBoxComboxMulticolonne.MultiListBox.Column(100, "AdresseVariable", "Adresse"))
                .Columns.Add(New ListBoxComboxMulticolonne.MultiListBox.Column(100, "MnemoVariable", "Mnémo"))
                .Columns.Add(New ListBoxComboxMulticolonne.MultiListBox.Column(200, "CommentaireVariable", "Commentaire"))
            End With
Si quelqu'un peut me donner un coup de main, merci d'avance. Désolé si mes explications ne sont pas très claire, mes je ne suis qu'un informaticien amateur et je manque surement du bon vocabulaire pour être bien compris.

signaler à un administrateur
Commentaire de PWM63 le 13/10/2006 16:18:29

Je cherchais justement une Combobox multi colonnes, et elle est parfaite !
Je n'ai plus qu'à (comprendre comment) l'intégrer dans mon projet :)
En attendant, 10/10 !

signaler à un administrateur
Commentaire de labout le 19/10/2006 15:28:00

merci

signaler à un administrateur
Commentaire de Robinwood01 le 16/11/2006 17:11:10

Superbe source, d'ailleurs ce n'est pas la première que j'utilise.
Cependant je début en VB .NET, je voudrais charger une combo box multicolonne à l'aide d'un recordset ou au pire avec un .add mais je n'arrive pas avec le add à mettre plusieurs colonnes.


Merci d'avance

signaler à un administrateur
Commentaire de labout le 26/11/2006 14:30:45

L'exemple de mon source traite ce cas.
Voic les 3 cas traités:
recordset fichier xml
recordset SQL Serves
recordset ACCESS

signaler à un administrateur
Commentaire de fredericmichel le 18/01/2007 14:11:49

Super ta combo multi-colonnes. Je trouve fou que Microsoft n'ait pas intégré cela dans ses combobox.
Par contre j'ai un petit soucis pour la remplir avec des données non récupérées dans une BDD. Je voudrais y rentrer les données à la main, j'y arrive avec une colonne, mais pas avec deux.
j'ai essayé items.add en passant un tableau et j'obtients à l'exécution "(collection)" dans la liste déroulante.
Peux tu m'aider ?
Merci d'avance.

signaler à un administrateur
Commentaire de sbaillamos2001 le 13/04/2007 19:05:52

salut tous le monde
j'ai besion d'un code qui me permet d'inserer un combobox multicolonnes en vb 6.0
merci d'avance

signaler à un administrateur
Commentaire de davidauche le 18/04/2007 10:58:37

LABOUT : il y a trois personnes au moins ont posé une question sur l'add des éléments
+1 (on attend une réponse)
Pas encore mater le code, mais je sens qu'il manque les Set pour items

Sinon, pourquoi tu ne hérite pas d'un listView (en mode list)? ça sera + simple pour les colums etc... (je suppose hein!)

signaler à un administrateur
Commentaire de Herleci le 20/04/2007 07:37:20

Bonjour comment faire pour remplir la multicolonneListBox avec un datareader, car je ne veux pas la lier à une table mais plutôt à ma requete voila mon code:
Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data source=C:\Documents and Settings\Antonio\Mes documents\Visual Studio 2005\Projects\SGI\SGI\RemonteTerrain2K3.mdb")
        'On crée une commande
'Une variable pour paramêtrer ma requête
        Dim RefDiff As Integer
        RefDiff = Form1.txtDiff.Text
        Dim Mycommand1 As OleDbCommand = MyConnexion.CreateCommand()
        Select Case RefDiff
            Case Is = 1, 2

                Mycommand1.CommandText = "select num_chaine, NOM_Chaîne,id_transpondeur from FormsChainePartranspondeur WHERE RefDiff like'" & RefDiff.ToString & "'"
            Case Else

                Mycommand1.CommandText = "select num_chaine, NOM_Chaîne,id_transpondeur from FormsChainePartranspondeur WHERE RefDiff <> 2"

        End Select
        MyConnexion.Open()
        'on crée le datareader et on stocke chaque résultat dans listbox1
        Dim Myreader1 As OleDbDataReader = Mycommand1.ExecuteReader()

A partir d'ici je ne sais pas comment on fait pour remplir la liste box

signaler à un administrateur
Commentaire de PWM63 le 10/10/2008 15:31:45

Bonjour,

Je suis en VB .net 2003.

Je souhaite afficher 1 MultiComboBox avec 2 colonnes "Code" et Signification", obtenir le résultat "Code" après avoir choisi 1 occurrence, et conserver la valeur "Numéro Auto".
Ces 3 champs sont dans 1 table d'1 dataset que je remplis via 1 fichier xml.

Pour l'instant, tout correspond à mon besoin, mais j'ai 1 petit soucis :
le contrôle affiche obligatoirement une valeur,
or, j'aimerai que la multicombobox reste vide tant que je n'ai encore rien sélectionné dans la liste.

J'ai essayé selectedvalue = nothing, "", 0 ou -1 ainsi que text="" mais rien n'y fait.

Existe-t-il 1 solution à mon problème ?

Par avance, merci.
Stéphane

PS : Ci-dessous un extrait du code :

        With Me.MultiComboBox1

                .DataSource = Me.DataTable1
                .DisplayMember = "Code"
                .ValueMember = "Numéro Auto"
                .DropDownWidth = 700

                .Columns.Add(New ListBoxComboxMulticolonne.MultiComboBox.Column(110, "Code"))
                .Columns.Add(New ListBoxComboxMulticolonne.MultiComboBox.Column(590, "Signification"))

        End With

signaler à un administrateur
Commentaire de labout le 10/10/2008 18:09:41

c'est dans le code de la DLL DLL qu'il faut agir.
Mais ce n'est pas gagné car c'est prvu pour afficher
la valeur existante ou la première valeur quand il n'y en a pas.

signaler à un administrateur
Commentaire de PWM63 le 13/10/2008 10:25:59

Merci Labout,

Après aide, pour ce qui concerne le Combobox, il s'agirait de la propriété FormattingEnabled, disponible uniquement à partir du Framework 2.0.
Et je suis en VB .Net 2003 qui n'accepte que le Framework 1.x.

Bref, c'est pas gagné !

Merci tout de même pour ta source !

Stéphane

signaler à un administrateur
Commentaire de labout le 21/10/2008 18:42:15

et bien il suffit d'ouvrir la DLL avec VB2005 puis de la recompiler. La version 2005 était téléchargeable gratuitement chez microsoft

signaler à un administrateur
Commentaire de PWM63 le 21/10/2008 20:45:09

J'ai migré vers VB Express 2008, et j'utilise la dernière version de ta DLL pour multicombobox.
Cela fonctionne maitenant parfaitement !

Pour info, je fais ainsi :


    Sub remplit_multicombobox(ByVal MultiComboBox As ListBoxComboxMulticolonne.MultiComboBox, ByVal DataSource As DataTable, ByVal DisplayMember As String, ByVal ValueMember As String, ByVal Columns() As structure_columns)

        Dim DropDownWidth As Integer = 0

        With MultiComboBox

            .DataSource = DataSource 'Table
            .DrawMode = DrawMode.OwnerDrawFixed
            .DisplayMember = DisplayMember 'Champs affiché
            .ValueMember = ValueMember 'Valeur du champs
            .AspectLigneVerticale = ListBoxComboxMulticolonne.MultiComboBox.LargeurTrait.Fin
            .HideColumnCle = True 'Clef cachée
            .FormattingEnabled = True 'Aucune valeur par défaut
            .SelectedValue = -1 'Aucune valeur par défaut

            For Each Column As structure_columns In Columns 'Ajoute les colonnes

                .Columns.Add(New ListBoxComboxMulticolonne.MultiComboBox.Column(Column.Width, Column.ColumnMember))
                DropDownWidth += Column.Width

            Next

            .DropDownWidth = DropDownWidth 'Largeur

        End With

    End Sub

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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,421 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é.