我想在DataGridView
事件CellFormatting
编写代码来触发,如果在同一行的列(qty
和scanqty
)值是不同的,然后设置背景颜色比较黄的逻辑。但会发生运行时错误C# - 的DataGridView比较两个单元格的值和设置风格
System.ArgumentOutOfRangeException:'索引超出范围。必须是非负面的,并且小于收藏的大小。“
以下是我的示例代码,任何人都可以帮助我,非常感谢。
private void dgProductList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (this.dgProductList.Columns[e.ColumnIndex].Name == "scanqty")
{
var sqty = String.IsNullOrEmpty(e.Value.ToString()) ? 0 : int.Parse(e.Value.ToString());
var qty = int.Parse(dgProductList[e.RowIndex, 1].Value.ToString());
if (sqty != qty)
{
e.CellStyle.BackColor = Color.Yellow;
e.CellStyle.ForeColor = Color.Red;
}
else
{
e.CellStyle.BackColor = Color.White;
e.CellStyle.ForeColor = Color.Black;
}
}
}
哇,粗心的错误,谢谢。 –
没问题。在StackOverflow上表达谢意的最佳方式是将答案标记为已接受。如果你不知道如何去做,这里是[解释它的帖子](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。祝你有个美好的一天 –