2010-07-05 3 views

Répondre

28

Sur le DataGridView, il y a un DefaultCellStyle, à l'intérieur il y a SelectionBackColor et SelectionForeColor propriétés.

DataGridView utilise une idée de l'héritage de style, si vous trouvez que le style que vous choisissez est pas appliquée:

http://msdn.microsoft.com/en-us/library/1yef90x0.aspx

1

Profitant de l » événement CellEnter et CellLeaveDataGridViewCell vous pouvez essayer quelque chose comme ceci:

private void foobarDataGridView_CellEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    DataGridViewCellStyle fooCellStyle = new DataGridViewCellStyle(); 
    fooCellStyle.BackColor = System.Drawing.Color.LightYellow; 
    this.VariableFinderDataGridView.CurrentCell.Style.ApplyStyle(fooCellStyle); 
} 

private void foobarFinderDataGridView_CellLeave(object sender, DataGridViewCellEventArgs e) 
{ 
    DataGridViewCellStyle barCellStyle = new DataGridViewCellStyle(); 
    barCellStyle.BackColor = System.Drawing.Color.White; 
    this.VariableFinderDataGridView.CurrentCell.Style.ApplyStyle(barCellStyle); 
} 
+0

Que faire si la couleur de la ligne avant la sélection n'était pas blanche? – Thunder

+0

Je veux dire que c'était juste un échantillon rapide pour illustrer le concept - vous venez de créer une méthode d'assistance pour récupérer la couleur dont vous avez besoin pour basculer là. –

26

Allons sur l'homme ... il doit y avoir une solution simple, et finalement en a un.

dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Blue; 
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Red; 

Cela a fonctionné pour moi, pas de codes complexes, pas de gestion d'événements. Je l'ai fait avant mais n'a pas été en mesure de se rappeler alors pensé que cela aiderait affichait les autres et moi à l'avenir :)

+1

Réponse parfaite !!! Merci. – SKR

0

Voici mon code

private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e) 
{ 
dataGridView1.CurrentRow.DefaultCellStyle.BackColor = Color.Maroon; 
dataGridView1.CurrentRow.DefaultCellStyle.ForeColor = Color.White; 
} 
+0

Nice un Adam! Je n'ai jamais su que ça existait !! –

Questions connexes