2016-12-21 7 views
0

status = "Incomplete"の場合、行の色は赤色になります。これどうやってするの? Statusフィールドは、列8 DataGridViewdataGridView 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.cellformatatting(v = vs.110).aspx) – Pikoh

+0

ありがとうPikoh。 –

+0

ありがとうSaadi。 –

答えて

0

DataGridViewのPrePaintイベントに登録する必要があり、簡単に行の色を設定できます。

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

ありがとうたくさんの人 –

関連する問題