要求是选中的行变色,代码如下事件是RowPrePaint。
这个思路是先得到当前的行。
RowPrePaint事件应该是每Paint一行之前的事件,所以对行进行检查,如果满足要求就设置成想要的样式即可。
因为要把非当前行还原样式,所以记录了之前的颜色,估计直接记录Style也是一种好方法。
1. void DataGridView1RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)2. {3. if (e.RowIndex >= dataGridView1.Rows.Count - 1)4. return;5. var row = (sender as DataGridView).Rows[e.RowIndex];6. try7. {8. Color oldForeColor = new Color();9. Color oldBackColor = new Color();10. if (row == (sender as DataGridView).CurrentRow) {11. if(row.DefaultCellStyle.ForeColor != Color.White)12. {13. oldForeColor = row.DefaultCellStyle.ForeColor;14. row.DefaultCellStyle.ForeColor = Color.White;15. }16. if(row.DefaultCellStyle.BackColor != ***.Blue)17. {18. oldBackColor = row.DefaultCellStyle.BackColor;19. row.DefaultCellStyle.BackColor = ***.Blue;20. }21. }22. else23. {24. row.DefaultCellStyle.ForeColor = oldForeColor;25. row.DefaultCellStyle.BackColor = oldBackColor;26. }27. }28. catch (Exception)29. {30. }31. }。
版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。