C#根据内容在datagridview中设置行背景颜色

时间:2017-10-22 17:21:27

标签: c#

我使用以下代码从db调用特定数据。

private void textBox25_TextChanged(object sender, EventArgs e)
    {
        con.Close();
        con.Open();
        SqlDataAdapter SDA = new SqlDataAdapter("select * from V_CustomerUnits2  where unitmodel like N'%" + textBox25.Text + "%'", con);
        DataTable DATA = new DataTable();
        SDA.Fill(DATA);
        dataGridView4.Rows.Clear();
        foreach (DataRow item in DATA.Rows)
        {
            int n = dataGridView4.Rows.Add();
            dataGridView4.Rows[n].Cells[0].Value = "false";
            dataGridView4.Rows[n].Cells[1].Value = item["fixid"].ToString();
            dataGridView4.Rows[n].Cells[2].Value = item["CompanyName"].ToString();
            dataGridView4.Rows[n].Cells[3].Value = item["unitmodel"].ToString();
            dataGridView4.Rows[n].Cells[4].Value = item["unitserial"].ToString();
            dataGridView4.Rows[n].Cells[5].Value = item["manufacturer"].ToString();
            dataGridView4.Rows[n].Cells[6].Value = item["problemdesc"].ToString();
            dataGridView4.Rows[n].Cells[7].Value = item["technotes"].ToString();
            dataGridView4.Rows[n].Cells[8].Value = item["dateaddedunit"].ToString();
            dataGridView4.Rows[n].Cells[9].Value = item["datefixed"].ToString();
            dataGridView4.Rows[n].Cells[10].Value = item["total"].ToString();
            dataGridView4.Rows[n].Cells[11].Value = item["invoicestatus"].ToString();
            dataGridView4.Rows[n].Cells[12].Value = item["invoicen"].ToString();
            Countrecords.Enabled = true;
        }
    }

我需要每行的背景颜色基于特定的结果。

例如,如果修复了单位,颜色为绿色,如果没有修复红色,如果无法修复橙色。

任何帮助?

1 个答案:

答案 0 :(得分:0)

使用行上的DefaultCellStyle.BackColor属性而不是您想要的。例如:

dataGridView4.Rows[n].DefaultCellStyle.BackColor = Color.Green;