Changement RowHeader couleur d'arrière-plan sur DataGridView sans perdre de Styles par défaut
Je veux seulement la couleur d'arrière-plan de certains en-têtes de ligne à changement sans perdre la fraîcheur de windows par défaut styles DataGridView:
Grid.EnableHeadersVisualStyles = false;
for(int i=0; i<Grid.Rows.Count; i++)
{
if ( /*I want to change this row */)
{
DataGridViewCellStyle rowStyle = Grid.RowHeadersDefaultCellStyle;
rowStyle.BackColor = Color.Wheat;
Grid.Rows[i].HeaderCell.Style = rowStyle;
}
}
Dès que je fais ce que je perds le passage de la Souris bleu effet sur les colonnes, et la flèche de tri sur les colonnes est en grisé.
J'ai essayé de définir les en-têtes de colonne de la defaultColHeaderStyle en vain. L'en-tête de ligne des modifications à la couleur souhaitée, ses les en-têtes de colonne de perdre leur nappe de style Windows. Toute aide?
OriginalL'auteur Tizz | 2013-07-16
Vous devez vous connecter pour publier un commentaire.
Le style par défaut de la ligne d'en-tête devrait déjà être définis lorsque vous générez votre
DataGridView
. Je voudrais donc utiliser:De cette façon, vous remplissez votre
rowStyle
avec le style prédéfini, puis modifier uniquement la partie que vous souhaitez modifier. Voir si cela résout votre problème.//EDIT
Comme vous voulez garder les autres stylings de la valeur par défaut de Windows DataGridView, vous aussi, vous devez définir les paramètres du style. Voir ce post.
Ou de l'essayer. Lorsque initialiazing:
Puis créer la fonction de gestionnaire avec quelque chose comme:
Ce code est basé sur ce post. Vous ne devez ensuite créer plus de peinture les conditions pour le passage de la souris et de l'état sélectionné. Mais cela devrait aussi fonctionner pour vous.
N'oubliez pas de supprimer:
Grid.EnableHeadersVisualStyles = false;
ou le forcer à:Grid.EnableHeadersVisualStyles = true;
.Je comprends mieux ce que vous êtes en train de parler maintenant, avec les photos. Hmm. Cela peut ne pas être possible.
Vous pouvez modifier une ligne individuelle à l'aide de la
paint
gestionnaire.Assurez-vous de ne pas mettre
Grid.EnableHeadersVisualStyles = false;
Ça doit être vrai, afin de maintenir l'effectif de style par défaut.Suce que vous avez à tout dessiner à la main, mais bon. Merci! J'ai besoin de faire quelques réglages, mais c'est certainement une bonne direction!
OriginalL'auteur CaptainBli