我想要一个条件:
bool_badge =0
:颜色为 RED bool_badge=1
:颜色与 ForestGreen 我有一个代码正确但是当我点击特定单元格
时我的代码:
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
int row = this.dataGridView1.CurrentCell.RowIndex;
string valeur = dataGridView1[2, row].Value.ToString();
if (valeur == "0")
{
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red;
}
else
{
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.ForestGreen;
}
}
但我希望当我执行我的应用程序时,如果bool_badge为0或1,则测试开始,并且我拥有所有gridview:color RED或ForestGreen,
我试试这段代码:
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
string valeur = dataGridView1[2, i].Value.ToString();
if (valeur == "0")
{
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Red;
}
else
{
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.ForestGreen;
}
}
但我有错误!
这是:
我该如何解决?
非常感谢,
答案 0 :(得分:0)
您应该使用.Rows和.Cells属性。
string valeur = dataGridView1.Rows[i].Cells[2].Value.ToString();
答案 1 :(得分:0)
您可以使用Datagridview的Cell_Formatting
事件。
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].HeaderText == "bool_badge" && dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
// if the column is bool_badge and check null value for the extra row at dgv
{
if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "0")
{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
}
if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "1")
{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.ForestGreen;
}
}
}
结果将是,
希望有所帮助,
答案 2 :(得分:0)
为了帮助你调试,不要做Value.ToString();刚
var value = dataGridView_XXX.Rows[rowNumber].Cells[i].value;
并且
if (value == null) display your row/column index
else dataGridView_XXX.Rows[rowNumber].DefaultCellStyle.BackColor = xxx;