[.NET CF] Modifier les en-têtes d'une DataGrid
J'ai une appli écrite en C# pour le framwork .NET Compact Framework tournant sur un smartphone sous Windows Mobile 5. Dans cette appli j'ai un composant DataGrid pour lequel je souhaite implémenter le comportement suivant : quand l'utilisateur "click" avec son stylet sur l'entête d'une colonne, je veux que l'entête de cette colonne (et uniquement celle-ci) change de couleur.
Pour le moment je n'arrive qu'à changer la couleur de tous les en-tête d'un coup. Voici comment je fais:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| private void dataGrid1_MouseDown(object o, MouseEventArgs mea)
{
DataGrid.HitTestInfo hitTest;
if (mea.Button == MouseButtons.Left)
{
dataGrid1 = (DataGrid)o;
// On fait un hittest pour savoir ou l'on a pointe
hitTest = dataGrid1.HitTest(mea.X, mea.Y);
// Si le hittest est sur un header de colonne, on continue
if (hitTest.Type == DataGrid.HitTestType.ColumnHeader)
{
// on recupere le nom de la colonne pour l'operation de tri plus bas
string columnName = ((DataTable)((DataView)dataGrid1.DataSource).Table).Columns[hitTest.Column].ColumnName;
if (dataGrid1.HeaderBackColor != SystemColors.ControlDark)
// on veut foncer la couleur des colonnes
{
dataGrid1.HeaderBackColor = SystemColors.ControlDark;
}
// on veut remettre la couleur par defaut
else
{
dataGrid1.HeaderBackColor = defaultColor;
}
(...) |
Le composant en question est un System.Windows.Forms.DataGrid. Je suis tout à fait enclin à utiliser un composant OpenNETCF si celui-ci permet de faire ce que je souhaite! Mais je ne sais absolument pas comment m'en sortir.