Wie ändere ich die Farbe der DataGridView-Zelle basierend auf dem Wert der Combobox?
Ich habe eine Datagrid-Ansicht wie folgt:
Ich würde gerne
Wenn das Formular geladen wird, wenn dasGender
er Wert der Spalte ist "Männlich", die entsprechende Farbzelle der Spalte "@"Name
wird Weiß sein
Wenn sich der Wert der Spalte @ ändeGender
: Männlich → Weiblich, Farbzelle der SpalteName
ist DarkGray, andernfalls ändert sich der Wert der SpalteGender
: Weiblich → Männlich, Farbzelle der SpalteName
wird Weiß sein
Ich habe es versucht, aber ich kann es nicht tun:
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;
}
}
ODER
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;
//}
}
Irgendwelche Tipps dazu werden eine große Hilfe sein. Danke im Voraus