IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topicStart Poll

En ligne · [ Standard ] · Linéaire+

> [.net Cf] Modifier Les En-têtes D'une Datagrid, feat. @#!

PoP
post 24/10/2006 13:40
Message #1


ragondin interstellaire
*****

Groupe : Membres
Messages : 3,059
Inscrit le : 16/05/2002 23:00
Lieu : DTC, au fond à gauche
Membre no. 8



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
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.


--------------------
PoP
"Consommez malin, consommez du ragondin!"
user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Sha
post 25/10/2006 15:25
Message #2


Cartographe
****

Groupe : Membres
Messages : 2,065
Inscrit le : 16/05/2002 23:00
Lieu : Toulouse
Membre no. 5



Si mes souvenirs de .Net / DataGrid sont bons, il est possible de déterminer le style de chaque colonne avec un objet DataGridColumnStyle à ajouter à une GridTableStylesCollection.


--------------------
"[I reject] politically-oriented thinking as essentially a hopeless waste of intellectual effort." - John Nash.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
PoP
post 26/10/2006 11:05
Message #3


ragondin interstellaire
*****

Groupe : Membres
Messages : 3,059
Inscrit le : 16/05/2002 23:00
Lieu : DTC, au fond à gauche
Membre no. 8



Vi vi, mais le problème c'est que ça impacte la colonne, et pas son entête. ;-)
Problème résolu, le client accepte une autre solution : le changement de couleur de la colonne. biggrin.gif


--------------------
PoP
"Consommez malin, consommez du ragondin!"
user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicTopic OptionsStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :
 

Version bas débit Nous sommes le : : 16/04/2024 18:59