2016-12-21 4 views
0

Если статус = "Неполный", цвет строк должен быть красным. Как я могу это сделать? поле состояния в колонке 8. DataGridViewКак установить цвет строк в dataGridView C#?

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; 
    } 
} 
+1

Этот вопрос был задан слишком много times.You можно использовать ** CellFormatting событие ** [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.forms. datagridview.cellformatting (v = vs.110) .aspx) – Pikoh

+0

Большое спасибо Pikoh. –

+0

Большое спасибо Саади. –

ответ

0

Вы должны подписаться на событие PrePaint DataGridView, и вы можете легко установить цвета строки.

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

Вы должны контролировать, если новая строка.

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; 
     } 
    } 
+0

Большое спасибо ребятам –

Смежные вопросы