Checkedlistbox [Résolu]

Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
-
Bonjour,

j'ai créer une checkedlistbox pour recupérer le nom des colonnes de la table et j'arrive à parcourir la checklistbox pour l'afficher dans un datagridview mais sa m'affiche length avec des chiffres.




mon code
Dim i As String
        For Each i In Chklistbox.CheckedItems

            Me.DataGrid1.DataSource = Chklistbox.CheckedItems

        Next

je pense qu'il doit manquer beaucoup de chose mais je debute.

je voudrai savoir comment faire pour afficher le nom de la colonne sélectionner .

merci.


EDIT : Ajout des balises de code
Afficher la suite 

Votre réponse

9 réponses

Messages postés
14317
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
0
Merci
Dim i As String
For Each i In Chklistbox.CheckedItems

Me.DataGrid1.DataSource = Chklistbox.CheckedItems

Next 


As-tu lu ton code ?
Que fais ce code (en français) ?

Pour chaque item sélectionné, tu mets comme source de donnée la liste des éléments sélectionnés.
Comment fais-tu ta requête à ta base de données pour remplire ta grille (sans prendre en compte les colonnes sélectionnées dans un premier temps) ?
Commenter la réponse de NHenry
Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
0
Merci
For Each colonne In table.Columns
            Fdepre.Chklistbox.Items.Add(colonne.ColumnName())
            
        Next

sinon quand je mets comme ça je ne sélectionne qu'un choix mais ça m'affiche toute la table.je sais il doit manquer beaucoup de chose mais je débute.
Me.DataGrid1.DataSource = table



EDIT : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
NHenry
Messages postés
14317
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
-
Bonsoir,

désolé pour le délai de réponse.

As-tu essayer de réduire la largeur des colonnes à masquer en mettant à 0 ?
Commenter la réponse de debutant71
Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
0
Merci
Bonsoir,
c'est pas grave pour le délai chacun a c'est occupation
Aurai tu un exemple je ne c'est pas comment faire.
j'ai essayer plusieurs choses mais la je seche.
merci
Commenter la réponse de debutant71
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
0
Merci
Salut

Tu veux copier ta 'table' dans un datagridview ?
A quoi sert le checklistbox ? si tu copie toute la table
et ta table est un datatable ?
Commenter la réponse de cs_ShayW
Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
0
Merci
oui je veux copier ma table dans un datagridview.
j'arrive à récupérer le nom des colonne de ma table dans ma checklistbox mais quand je coche une case elle m'affiche toute la table ou lengt comme dans l'exemple ci-dessus.
en fait ma checklistbox me permettrai d'afficher que les colonnes et les données qui vont avec de ma table sélectionner dans ma checklistbox.Oui ma table est une datatable.
j'espere que je suis assez claire.
merci.
Commenter la réponse de debutant71
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
0
Merci
Private Sub CopyTableInDatagridview()
'Copie le datatable dans le datagridview
DataGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken
DataGrid1.Font = New Font("arial", 14, FontStyle.Bold, GraphicsUnit.Pixel)
DataGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
DataGrid1.EnableHeadersVisualStyles = False
DataGrid1.ColumnHeadersDefaultCellStyle.BackColor = Color.PowderBlue
Dim bds As New BindingSource
bds.DataSource = table
DataGrid1.DataSource = bds
DataGrid1.AutoSize = True
DataGrid1.AutoResizeColumns()

End Sub
Commenter la réponse de cs_ShayW
Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
0
Merci
Merci pour ton code mais quand je choisi une ou plusieurs checkbox dans mon checklistbox ça m'affiche toujours toute la table dans mon datagirdview et je veux qu'il m'affiche que les colonnes que j'ai sélectionner.
cs_ShayW
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
-
peut etre le contraire de ne pas afficher les colonnes non checked
la Sub CopyTableInDatagridview copie tout le datatable
maintenant il suffit d'ajouter une boucle

For iter = 0 To CheckedListBox1.Items.Count - 1
If CheckedListBox1.GetItemChecked(iter) = False Then
DataGrid1.Columns(CheckedListBox1.Items(iter).ToString).Visible = False
End If
Next
Commenter la réponse de debutant71
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
0
Merci
erreur plutot ainsi
à placer où tu valides ton checklistbox
 For Each item In CheckedListBox1.Items
If Not CheckedListBox1.CheckedItems.Contains(item) Then
DataGrid1.Columns(item.ToString).Visible = False
End If
Next
DataGrid1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)

Commenter la réponse de cs_ShayW
Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
0
Merci
Merci cs_ShayW ça marche
J'avais pas penser à faire l'inverse

bonne soirée.

ps : tes deux code marche je viens de les essayer.
cs_ShayW
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
-
De rien
je viens d'ajouter la ligne
DataGrid1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
debutant71
Messages postés
53
Date d'inscription
dimanche 19 octobre 2014
Dernière intervention
17 juillet 2015
-
oui je l'ai vu après.
Commenter la réponse de debutant71

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.