【问题标题】:how to set rows color in dataGridView C#? [duplicate]如何在 dataGridView C# 中设置行颜色? [复制]
【发布时间】:2017-05-06 14:23:00
【问题描述】:

如果状态 =“未完成”,则行颜色应为红色。我怎样才能做到这一点? 状态字段在第 8 列中。DataGridView

String query = "select * from bug order by id desc;";
String Status = null;                     
DataTable dt = connection.retrieve(query);
for (int i = 0; i < dataGridViewDashboard.Rows.Count; i++)
{
    Status = dataGridViewDashboard.Rows[i].Cells[8].Value.ToString();
    if (Status == "Incomplete")
    {
        dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    }
    else
    {
        dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Green;
    }
}

【问题讨论】:

  • 这个问题被问太多次了。你可以使用CellFormatting event MSDN
  • 非常感谢 Pikoh。
  • 非常感谢萨阿迪。

标签: c# datagridview


【解决方案1】:

你必须控制是否是新行。

    String query = "select * from bug order by id desc;";
    String Status = null;                     
    DataTable dt = connection.retrieve(query);
    for (int i = 0; i < dataGridViewDashboard.Rows.Count; i++)
    {
       if (dataGridViewDashboard.Rows[i].IsNewRow)
                continue;
        Status = dataGridViewDashboard.Rows[i].Cells[8].Value.ToString();
        if (Status == "Incomplete")
        {
            dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Red;
        }
        else
        {
            dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Green;
        }
    }

【讨论】:

  • 非常感谢大家
【解决方案2】:

您必须订阅 DataGridView 的 PrePaint 事件,您可以轻松地设置行的颜色。

  private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e){
if (your control here) 
{
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
}}

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2015-02-15
    • 1970-01-01
    • 2016-05-31
    • 2013-06-15
    • 2011-10-31
    • 2018-06-15
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多