PoP 0 Posté(e) le 24 octobre 2006 Partager Posté(e) le 24 octobre 2006 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: 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. Lien à poster
Refuznik 0 Posté(e) le 24 octobre 2006 Partager Posté(e) le 24 octobre 2006 As tu essayé de bounder colonne par colonne et en définissant un template pour chaque ? Ce qui permettrais d'éviter que ton header coloré passe pour toute les autres. Étant donné que les colonnes d'un datagrid sont défini par un index, tu peux esayer un truc du genre DataGrid.Columns[index].HeaderText Cet exemple modifie le texte du header bien sur. Lien à poster
PoP 0 Posté(e) le 25 octobre 2006 Auteur Partager Posté(e) le 25 octobre 2006 Ouaip, j'ai regardé, mais je n'ai pas trouvé bonheur. J'ai bien peur que je n'ai d'autre solution que de devoir surcharger la méthode onPaint(), ce qui m'enchante très peu. Lien à poster
Messages recommandés