【发布时间】:2017-07-25 16:54:15
【问题描述】:
我正在尝试在DataGridView 事件CellFormatting 中编写代码以触发比较同一行中的列(qty 和scanqty)值是否不同的逻辑,然后将背景颜色设置为黄色。但是出现运行时错误
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;
}
}
}
【问题讨论】:
标签: c# .net winforms datagridview