2010-01-28 2 views
0

J'essaie de dessiner des ColumnHeaders personnalisés dans un contrôle FastObjectListView. Jusqu'à présent, le code fonctionne, mais l'espace libre ColumnHeaders (donc la partie qui ne contient aucun en-tête de colonne atm) dessine toujours par défaut.Couleur d'arrière-plan de l'espace libre de C# ColumnHeader

private void olvMain_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) 
    { 
     e.Graphics.FillRectangle(Brushes.Black, 
      e.Bounds.X, e.Bounds.Y, 
      e.Bounds.Width, e.Bounds.Height); 

     e.Graphics.DrawRectangle(Pens.Lime, 
      e.Bounds.X - 1, e.Bounds.Y - 1, 
      e.Bounds.Width - 1, e.Bounds.Height - 1); 

     e.DrawText(); 

     e.DrawDefault = false; 
    } 

I ajouté:

e.DrawDefault = false; 

car sans que le style par défaut de ColumnHeaders obtenu dessiné au-dessus de mon style personnalisé, mais comme l'espace libre du columnheaderbar ne contient aucun ColumnHeaders il est toujours dessiné par c'est le style par défaut.

est ici un pic pour clarifier ce que je veux dire par l'espace libre ColumnHeader: Image Link

Merci à l'avance.

Répondre

1

La zone qui n'est pas peinte en noir se trouve à l'extérieur de la zone client de l'en-tête et ne peut donc pas être peinte par la commande.

Il n'y a pas de moyen facile de changer la couleur de cette zone. Jetez un oeil à this question and its answer pour voir quelques solutions possibles.

Questions connexes