2012-01-15 14 views
0

セルの値が変更されたときに、特定の列のバックカラーを変更しようとしました。 私はそれを行う方法を見つけられなかったし、その方法を知らない。データグリッドビューでバックカラーを変更する

ok ---->緑色のバックカラー。
nok ----> backcolor in red。

ありがとうございます。

private void timer2_Tick(object sender, EventArgs e) 
{ 
    int count = 0; 
    foreach (DataRow dr in ds.Tables[0].Rows) 
    { 
     String StartCourse = dr[0].ToString(); 
     string EndCourse = dr[1].ToString(); 
     DateTime SystemTime = Convert.ToDateTime(DateTime.Now); 
     DateTime StartTime = Convert.ToDateTime(StartCourse); 
     DateTime EndTime = Convert.ToDateTime(EndCourse); 

     if (StartTime.TimeOfDay.Ticks <= SystemTime.TimeOfDay.Ticks && SystemTime.TimeOfDay.Ticks < EndTime.TimeOfDay.Ticks) 
      { 
       ds.Tables[0].Rows[count][5] = "ok";  
      } 

     else 
      { 
       ds.Tables[0].Rows[count][5] = "nok"; 
      } 

     count++; 
     dataGridView1.DataSource = ds.Tables[0]; 

    } 
} 

答えて

1

このプロシージャを呼び出すことができます。

void ColorGrid() 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (row.Cells[5].Value.ToString() == "ok") 
     { 
      row.DefaultCellStyle.BackColor = Color.Green; 
     } 
     else 
     { 
      row.DefaultCellStyle.BackColor = Color.Red; 
     } 
    } 
} 
+0

GridViewRowのエラー:型または名前空間 "gridviewrow"が見つかりませんでした(使用しているディレクティブがありません。) – user1112847

+0

@ user1112847:申し訳ありません、GridViewRowではなくDataGridViewRowです。 –

+0

行のエラー。BackColor ---> BackColorの定義が含まれていません。 – user1112847

1

DataGridViewColumn.DefaultCellStyleプロパティを参照してください。これにより、列にDataGridViewCellStyleを設定することができます。このクラスにはBackColorというプロパティがあります。

詳細については、以下のMSDNの記事を参照してください。

Cell Styles in the Windows Forms DataGridView Control

+0

はい私は試みて、何もdatagridviewに表示されませんでした。 ds.Tables [0] .Rows [count] [5] = "ok"; dataGridView1.DefaultCellStyle.BackColor = Color.green; – user1112847

0

を更新し、これを試してみてください:

よろしくお願いいたします。

0

私は自分のプロジェクトでこれをやっています。

foreach (DataGridViewRow row in this.dataGridView1.Rows) 
{ 

    row.DefaultCellStyle.BackColor = (row.Cells[5].Text == "ok")? Color.Green:Color.Red; 
} 

それでも動作しない場合は、そのデータグリッドビューを削除してもう一度追加してみてください。 再度dataGridView1という名前を付けて、対応するイベントを添付してください。

関連する問題