Bonjour tout le monde,
J'ai essayé de changer la couleur de fond de la ligne de titre d'un DataGridView (donc dans un projet WinForms).
Il me revient après coup que je crois bien avoir essayé ça il y a quelques semaines/mois, et qu'on avait dit nada il faut donner une couleur de fond au contrôle, et la ligne de titre en héritera, mais mieux on ne sait pas faire, sauf solution plus pêchue, dont on trouve un exemple sur CodeProject, en recourant aux API Windows et en allant choper les handles des différentes parties du contrôle. Du coup si on veut on peut télécharger le projet qui surclasse le contrôle.
Dans ma recherche j'ai trouvé que des méninges ont chauffé sur la question il y a 17 ans, et ont évoqué un bug transitoire de .Net :
https://social.msdn.microsoft.com/Fo...msdatacontrols
Et en réalité, deux problèmes se posent dans ce fil :
- beaucoup de gens expliquent comment changer la couleur de fond de la cellule sélectionnée, mais ne disent pas comment sélectionner une cellule de titre
- semble-t-il certains "y arrivent", mais le premier point laisse se demander à quoi, si c'est eux aussi à colorier la cellule sélectionnée, ou si au contraire ils sont dans le sujet ; pour ma part, comme Row[0] j'ai trouvé non pas la rangée de titre, mais la première rangée de données –et Row[-1] est invalide.
Donc, sauf bonne surprise, il s'avère que le bug qui était transitoire en 2006 l'est toujours en 2023. Combien ça fait, ça, 17 ans, non ?
***
Au début en disant que j'ai déjà essayé j'ai confondu : il devait s'agir d'un ListView, puisque le DataGridView, vous pouvez lui donner une couleur de fond, elle n'apparaît pas sur les colonnes, y compris sur la ligne de titre.
***
Ah c'est vrai qu'on ne dit pas une cellule de titre, mais une cellule d'entête de colonne.
Partager