Datagridview vb2005 [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
28 février 2006
-
Messages postés
26
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
28 février 2006
-
bonjour,

question simple:
J'ai un datagridview (créé en run-time) qui m'affiche actuellement les 25 colonnes d'un dataview avec un rowfilter. Mais je voudrais qu'il n'affiche que les colonnes 2 et 4. Comment faire?


merci d'avance

6 réponses

Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016

salut,



les DataGridViewColumn ont une propriété Visible, il suffit de lui assigner la valeur False !



tu peux, par exemple, passer par la collection DataGridViewColumns du DataGridView. C'est une proprité indexable.



For Each column As DataGridViewColumn in myDataGridView.Columns



column.Visible CBool((column.Index 2) OrElse (column.Index = 4))



Next column





[ Dalida ]<hr>
pensez à indiquer la version du language
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Messages postés
26
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
28 février 2006

merci .

J'avais penser également à faire une boucle sur chaque colonne mais déjà si je mets par exemple:
mdv.columns(1).visible = false
sans même faire de boucle, j'ai alors "index was out of range" comme message au moment du debug.

Par-contre avec ton code j'ai ce message alors sur la ligne
For
Each column
As DataGridViewColumn
In mdv.columns



'columns' is not a member of 'System.Data.DataView'.

Une idée? C'est pas un pb de référence ou de Imports?

Merci d'avance
Messages postés
26
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
28 février 2006

oops erreur de ma part : j'ai remplacé mdv.columns par madatagridview.columns
Messages postés
26
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
28 février 2006

mon message précédent à été de nouveau coupé en 2.
merci pour l'info, ca marche super quand j'insère un datagridview sur la form et que je le paramètre par code. j'ai avancé d'un grand pas.

Maintenant je crée 12 instances de datagridview ,toutes identiques excepté le rowfilter du dataview qui change. Mais hélas le bout de code qui définit les colonnes visibles, ne fonctionne plus et chaque datagridview m'affiche les 25 colonnes. Je me demande si j'irai pas plus vite en placant manuellement mes controles qu'en les créant dynamiquement, surtout que le nombre reste fixe.
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016

re,



pour l'appliquer à
n'importe quelle DataGridView il faut une méthode générique qui prenne
un DataGridView et un tableau d'entiers (les index des colonnes à
masquer) en paramètre.



Private Sub HideColumns(ByVal dtg As DataGridView, ByVal indexes() As Integer)



For Each column As DataGridViewColumn In dtg.Columns



column.Visible = Not CBool(Array.IndexOf(indexes, column.Index) >= 0)



Next column



End Sub



tu crées ton DataGridView et tu appelles la méthode :

Call HideColumns(myDataGridView, New Integer() {2,4})



je n'ai rien testé, alors tiens moi au courant !



à plus




[ Dalida ]<hr>
pensez à indiquer la version du language
Messages postés
26
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
28 février 2006

meme résultat

Bon je vais passer à autre chose pour le moment, car ca fait toute la journée que je calle là dessus, je reviendrai plus tard, quand ma tete sera plus fraiche.

merci pour ton temps. ta premiere solution me dépanne dejà bien.
A+