Datagridview vb2005

Résolu
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006 - 28 févr. 2006 à 12:39
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006 - 28 févr. 2006 à 18:34
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

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
28 févr. 2006 à 12:59
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
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
28 févr. 2006 à 13:35
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
0
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
28 févr. 2006 à 14:43
oops erreur de ma part : j'ai remplacé mdv.columns par madatagridview.columns
0
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
28 févr. 2006 à 16:32
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.
0

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

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
28 févr. 2006 à 16:58
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
0
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
28 févr. 2006 à 18:34
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+
0
Rejoignez-nous