Comment contrôler l'ordre de dataGridViewColumn pour des objets métier personnalisés?
-
05-07-2019 - |
Question
La création d'un objet métier personnalisé à glisser dans un dataGridView fonctionne à merveille ... sauf que je ne vois pas de moyen par programme de définir l'ordre des colonnes.
Dois-je les ajouter manuellement, un à un, à la main, simplement pour obtenir un meilleur tri ou puis-je utiliser un attribut caché crypté?
La solution
Chaque propriété dataGridViewColumn en tant que propriété DisplayIndex pouvant être appliquée à tout moment et fonctionnant même avec AutoGenerateColumns défini sur true.
dataGridView1.Columns["colName"].DisplayIndex = 0;
dataGridView1.Columns["colAnotherColumn"].DisplayIndex = 1;
Autres conseils
Je suppose que AutoGenerateColumns
est actuellement défini sur true
. Le seul moyen que je connaisse pour contrôler l'ordre des colonnes est de définir AutoGenerateColumns
sur false
et, comme vous l'avez dit, d'ajouter les colonnes manuellement.
EDIT:
Je viens juste de regarder dans le vague souvenir d'une autre façon de faire cela et je pense que vous voudrez peut-être examiner la propriété ColumnsGenerator
du contrôle GridView
qui prend un IAutoFieldGenerator
objet. Cette interface a une méthode appelée GenerateFields 'qui prend un
Control (la
grille ) et retourne un
ICollection `(de Fields).