在创建时修改行样式

时间:2014-04-02 13:21:22

标签: c# winforms datagridview

我有一个datagridview,它通过从文本文件中读取的DataTable填充。

其中一列被称为"验证"并且它具有诸如" Y"或" N"。

我想根据Y或N值更改行颜色。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
  try
  {
    string cellValue = dataGridView1.Rows[e.RowIndex].Cells["Validated"].Value.ToString();
    if (dataGridView1.Rows[e.RowIndex].Cells["Validated"].Value != null)
      if (cellValue.Equals("Y") || cellValue.Equals("y"))
      {
        DataGridViewCellStyle style = new DataGridViewCellStyle();
        style.BackColor = System.Drawing.Color.LightGray;
        dataGridView1.Rows[e.RowIndex].DefaultCellStyle = style;
      }
    }
  catch { }
}

还有其他必须使用的事件吗?上面的一个一直在说列"验证"不存在。

2 个答案:

答案 0 :(得分:2)

dataGridView1_CellFormatting事件中添加代码逻辑。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if(dataGridView1.Rows[e.RowIndex].Cells["Validated"].Value.ToString() == "Y")
            {
                DataGridViewCellStyle style = new DataGridViewCellStyle();
                style.BackColor = System.Drawing.Color.LightGray;
                dataGridView1.Rows[e.RowIndex].DefaultCellStyle = style;
            }
}

答案 1 :(得分:0)

列的DataPropertyName值是否被称为"已验证"?列的名称不一定引用集合中的列。