我希望在Amount cell
时更改Qty or Price changed
。
Amount = Qty * Price
我尝试了这段代码,它总是给我ArgumentOutOfRangeException。
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dg_invoices_items.Columns[e.ColumnIndex].Name == "qty")
{
dg_invoices_items[e.RowIndex, 4].Value =Convert.ToString(
Convert.ToInt32(dg_invoices_items[e.RowIndex, 2].Value) *
Convert.ToInt32(dg_invoices_items[e.RowIndex, 3].Value));
}
}
答案 0 :(得分:2)
列索引从0开始,列索引太高了。
为避免这种情况,您可以使用命名列:
dg_invoices_items["Qty", e.RowIndex].Value = Convert.ToString(
Convert.ToInt32(dg_invoices_items["Price", e.RowIndex].Value) *
Convert.ToInt32(dg_invoices_items["Amount", e.RowIndex].Value));
Altough我目前无法测试任何代码,所以这可能无效。