我想将两列的数据相乘并在第三列中显示。
例如:
1st Column: Quantity
2nd Column: Rate
3rd Column: Price
我希望在用户输入数量和费率数据时倍增,如Quantity=2
,rate=50
自动在价格列中显示100
。
同时我想在用户输入数量和费率的数据时进行除法,例如Price=100
,rate=50
自动在数量列中显示我希望2
。
和
当用户在“费率”列中自动输入Price=100
,Quantity=2
的数量和费率数据时,我希望50
出现。
这三个将在同一个datagridview中发生。用户只能输入这三个中的任意两个字段,第三个字段将自动进入。
使用C#,VS2008,SQL 2008
private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int quantity,rate;
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
if(int.TryParse(dataGridView2.Rows[i].Cells[1].Value.ToString(), out quantity) && int.TryParse(dataGridView2.Rows[i].Cells[2].Value.ToString(), out rate))
{
int price = quantity * rate; dataGridView2.Rows[i].Cells[3].Value = price.ToString();
}
}
}
我写这段代码。显示错误。对象引用未设置为
上的对象实例if(int.TryParse(dataGridView2.Rows[i].Cells[1].Value.ToString(), out quantity) && int.TryParse(dataGridView2.Rows[i].Cells[2].Value.ToString(), out rate))
这一行。
我想这样做。用户可以填写其中的任何2个字段。第三个字段将自动填充。
答案 0 :(得分:2)
处理gridview的CellEndEdit
事件。在那种情况下,计算并将值分配给第三列
类似
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int quantity,rate;
if (int.TryParse(dataGridView1.Rows[e.RowIndex].Cells["quantity"].Value.ToString(), out quantity) && int.TryParse(dataGridView1.Rows[e.RowIndex].Cells["rate"].Value.ToString(), out rate))
{
int price = quantity * rate;
dataGridView1.Rows[e.RowIndex].Cells["price"].Value = price.ToString();
}
}