Opérations sur colonnes d'un datagridview maison
Bonjour,
j'ai commencé à me faire un petit datagridview customisé.
J'ai fait quelques petites choses sur le OnCellPainting, ça, ça marche.
Mais je voulais me faire une méthode pour faire disparaitre le glyph du sort qui apparait à chaque clic d'en tete de colonne (j'ai pas trouvé un moyen pour l'erradiquer définitivement à la création du datagridview).
Alors je procedais a peu pres comme ça :
Code:
1 2 3 4
| private void liste_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{for (int j = 0; j < liste.Columns.Counth; j++)
{ liste.Columns[j].HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.None; }
} |
Et ça , ça marche.
Mais je voudrais donc alors plutot quelque chose du style :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public void ColonnesSortMode(string direction,int debut,int fin)
{
for (int j = debut; j < fin; debut++)
{
switch (direction)
{
case "NONE":
liste_dtgv.Columns[j].HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.None;
break;
case "ASC":
liste_dtgv.Columns[j].HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.Ascending;
break;
case "DESC":
liste_dtgv.Columns[j].HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.Descending;
break;
}
}
} |
Ci dessus ce serait une méthode de la classe MonDataGridView
et faire :
Code:
1 2 3
| private void liste_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
liste.ColonnesSortMode("NONE", 0, liste.Columns.Count);
} |
Dans le but de pouvoir me resservir de mon pti datagridview dans un autre projet.
Mais le soucis c'est que j'ai un message d'erreur d'index hors limite dans le for de ma méthode perso.
Je ne sais pas trop comment faire donc pour manipuler les colonnes de mon datagridview (liste) dérivé de ma classe par le datagridview pere (liste_dtgv)... :aie:
Je ne sais pas si je suis tres clair...