我有一个datagridview如下:
我希望:
当表单加载时,如果
Gender
列的值为Male,则列Name
的相应颜色单元格将为White当更改列
Gender
的值时:Male → Female,列Name
的颜色单元格将为DarkGray, 否则,如果更改列Gender
的值:Female → Male,列Name
的颜色单元格将为White
我尝试了但是无法实现:
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
DataGridView dgv = sender as DataGridView;
DataGridViewCell cell = dgv.CurrentCell;
if (dgv.Rows[cell.RowIndex].Cells["Gender"].Value.ToString().Trim() == "Male")
{
// Male
dgv.Rows[cell.RowIndex].DefaultCellStyle.BackColor = Color.White;
}
else
{
// Female
dgv.Rows[cell.RowIndex].DefaultCellStyle.BackColor = Color.DarkGray;
}
}
或:
private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridView dgv = sender as DataGridView;
if (dgv.Columns[e.ColumnIndex].Name.Equals("Gender"))
{
if (e.Value != null && e.Value.ToString().Trim() == "Male")
{
e.CellStyle.BackColor = Color.White;
}
else
{
e.CellStyle.BackColor = Color.DarkGray;
}
}
//if (dgv.Rows[e.RowIndex].Cells["Gender"].Value.ToString().Trim() == "Male")
//{
// e.CellStyle.BackColor = Color.White;
//}
//else
//{
// e.CellStyle.BackColor = Color.DarkGray;
//}
}
任何有关这些的提示都将是巨大的帮助。提前谢谢。
DataTable
来显示数据,而是使用DataGridViewRow
,那么应该怎么做呢?很抱歉我是C#的新手。 - MinhKiyo