c# - How can I preserve the background and foreground color of a DataGridView.DefaultCellStyle when it is selected? -


unselected selected

when row in datagridview selected background color of row gets overridden , user cannot determine state row in.

is there way not change background color of row when selected?

you need set selectionxxxcolors colors have set rows.

you can use selectionchanged event style selected rows:

private void datagridview2_selectionchanged(object sender, eventargs e) {      foreach (datagridviewrow row in datagridview2.selectedrows)     {         row.defaultcellstyle.selectionbackcolor = row.defaultcellstyle.backcolor;         row.defaultcellstyle.selectionforecolor = systemcolors.controltext;                                                 // row.defaultcellstyle.forecolor;     }     foreach (datagridviewrow row in datagridview2.rows)         row.defaultcellstyle.font = row.selected ?             new font(datagridview2.font, fontstyle.bold) : datagridview2.font; } 

note1 : if possible should set selectionxxxxcolors when set regular colors rows , change font style when selection changes..

note 2: instead of systemcolors.controltext can of course use defaultcellstyle.forecolor provided have set it..


Comments