c#中怎样才能让datagridview中指定的一行或多行变色

来源:百度知道 编辑:UC知道 时间:2024/05/13 10:44:06
如题:我要做一个数据列表,根据其中的某一项的值进行区分,如性别。如果是男的,该行记录就显示为灰色,如果是女的,记录显示正常。

利用datagridview中的RowPrePaint事件。
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex >= dataGridView1.Rows.Count - 1)
return;
DataGridViewRow dgr = dataGridView1.Rows[e.RowIndex];
try
{
//dgr.Cells[0]是当前性别列的索引值,用以确定判断哪一列的值
if (dgr.Cells[0].Value.ToString() == "男")
{
//定义画笔,使用颜色是深灰。
using (SolidBrush brush = new SolidBrush(Color.DarkGray))
{
//利用画笔填充当前行
e.Graphics.FillRectangle(brush, e.RowBounds);
//将值重新写回当前行。
e.PaintCellsContent(e.ClipBounds);
e.Handled = true;
}
}
}