日期:2014-05-18  浏览次数:20978 次

dataGridView中值变化的问题
写一段代码,TablesB3中如果“A1”列中的值有变化,则同一行的“A2”列单元格赋值为“OK”
C# code
        void TablesB3_ColumnChanged(object sender, DataColumnChangeEventArgs e)
        {
            if (e.Column.ColumnName == "A1")
            {
                  e.Row["A2"] = "OK";
                  this.dataGridView1.UpdateCellValue(this.dataGridView1.Columns["A2"].Index, this.dataGridView1.CurrentRow.Index);            
            }
        }

我还想在变化后dataGridView1中对应的单元格字体颜色变为红色,但没有成功:
C# code
        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == dataGridView1.Columns["A2"].Index)
            {
                dataGridView1.Rows[e.RowIndex].Cells["A2"].Style.ForeColor = Color.Red;
            }
        }


请给指点一下,谢谢。

------解决方案--------------------
用单元格格式化事件
CellFormating
------解决方案--------------------
CellFormatting
------解决方案--------------------
所有行:
dataGridView1.RowsDefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Strikeout);
dataGridView1.RowsDefaultCellStyle.ForeColor = Color.Blue;
dataGridView1.RowsDefaultCellStyle.BackColor = Color.Red;
选中行
dataGridView1.SelectedRows[0].DefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Strikeout);
dataGridView1.SelectedRows[0].DefaultCellStyle.ForeColor = Color.Blue;
dataGridView1.SelectedRows[0].DefaultCellStyle.BackColor = Color.Red;

------解决方案--------------------
CellFormating事件,只要符合条件,就格式化你需要的单元格