我将代码用于datagridview1
的sum单元格,如下所示
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
int sum = 0;
for (i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
if (dataGridView1.Rows[i].Cells[0].Value != null)
{
sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value.ToString());
label1.Text = Convert.ToString(sum);
}
}
}
但是我希望我的cell[0].value
总和显示在label1
中,如下所示,但是如果我可以使用乘以其他单元格中的任何数字,如下图所示答案应为= {{1} }
见下面详细介绍了它的来历
5 + 4 = 9 * 2 = 18
(18 + 2)* 3 = 60
答案 0 :(得分:1)
试试这个解决方案:
int sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
//for 1st column
if (dataGridView1.Rows[i].Cells[0].Value != null && !String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[0].Value.ToString()))
sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value.ToString());
//for 2nd column
if (dataGridView1.Rows[i].Cells[1].Value != null && !String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[1].Value.ToString()))
sum *= Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value.ToString());
//for 3rd column
if (dataGridView1.Rows[i].Cells[2].Value != null && !String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[2].Value.ToString()))
sum *= Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value.ToString());
}
label1.Text = Convert.ToString(sum);
在所有计算后将sum
分配给label1
。在每次迭代中都没用它。
答案 1 :(得分:0)
我想我有一个解决方案,但它需要一个Gridview,而不是一个datagridview所以如果你要使用它就留下评论,否则就会删除它。
foreach(GridViewRow row in gridCriteria.Rows)
{
foreach(TableCell cell in row.Cells)
{
if(cell.Text != "")
{
int indexOf = row.Cells.GetCellIndex(cell);
if(indexOf == 0)
{
Sum += Convert.ToInt32(cell.Text);
}
else
{
Sum *= Convert.ToInt32(cell.Text);
}
}
}
}