Datagridview 列 SUM 到文本框并使用每个添加行更新文本框
Datagridview column SUM to textbox & update textbox with each adding row
我是 C# 的新手,我需要你的帮助来解决我的以下问题。
我有 DGV,它没有绑定到任何数据源。我几乎没有文本框和日期时间选择器来将数据添加到 DGV。一旦用户按下我表单中的 "ADD" 按钮,它将向 DGV 添加新行。我的问题是我需要将我的 DGV 中第 4 列的总和输入到我表单中的文本框中,这是总帐单价值。并且应该随着每次添加行列第 5 个值
进行更新
希望你们理解我的问题。对不起,我的英语不好。欢迎任何代码。
textBox10.Text = "0";
foreach (DataGridViewRow row in dgvFE.Rows)
{
int n1 = row.Index;
textBox10.Text = (Double.Parse(textBox10.Text.ToString()) + Double.Parse(dgvFE.Rows[n].Cells[4].Value.ToString())).ToString();
}
我在 "ADD" 按钮点击事件下输入了上面的代码。但我的 textbox10 只显示账单价值的第一行。不是第 5 列中所有行的总和。 (用户可以像我之前提到的那样添加更多列。)
我在同一个按钮点击事件下尝试了下面的代码,但 textbox10 中的结果与上面的代码相同。
int sum = 0;
for (int x = 0; x < dgvFE.Rows.Count; x++ )
{
sum += Convert.ToInt32(dgvFE.Rows[x].Cells[4].Value);
}
请帮忙。
从您的 post 看来,应用程序用户将手动将数据输入网格。如果是这样,使用添加按钮单击事件不是更新总数的正确位置。
我假设您在单击 "Add" 按钮时添加了一个新行。它只是一个新行,不会有任何数据。当用户输入数据时,事件已经处理,textbox10
不会更新。
您应该使用 DataGridView.CellValueChanged
事件来更新您的列总数。
代码示例:
void dgvFE_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 4)
{
textBox10.Text = (from DataGridViewRow r in dgvFE.Rows
select Convert.ToDouble(r.Cells[e.ColumnIndex].Value))
.Sum().ToString();
}
}
我是 C# 的新手,我需要你的帮助来解决我的以下问题。 我有 DGV,它没有绑定到任何数据源。我几乎没有文本框和日期时间选择器来将数据添加到 DGV。一旦用户按下我表单中的 "ADD" 按钮,它将向 DGV 添加新行。我的问题是我需要将我的 DGV 中第 4 列的总和输入到我表单中的文本框中,这是总帐单价值。并且应该随着每次添加行列第 5 个值
进行更新希望你们理解我的问题。对不起,我的英语不好。欢迎任何代码。
textBox10.Text = "0";
foreach (DataGridViewRow row in dgvFE.Rows)
{
int n1 = row.Index;
textBox10.Text = (Double.Parse(textBox10.Text.ToString()) + Double.Parse(dgvFE.Rows[n].Cells[4].Value.ToString())).ToString();
}
我在 "ADD" 按钮点击事件下输入了上面的代码。但我的 textbox10 只显示账单价值的第一行。不是第 5 列中所有行的总和。 (用户可以像我之前提到的那样添加更多列。)
我在同一个按钮点击事件下尝试了下面的代码,但 textbox10 中的结果与上面的代码相同。
int sum = 0;
for (int x = 0; x < dgvFE.Rows.Count; x++ )
{
sum += Convert.ToInt32(dgvFE.Rows[x].Cells[4].Value);
}
请帮忙。
从您的 post 看来,应用程序用户将手动将数据输入网格。如果是这样,使用添加按钮单击事件不是更新总数的正确位置。
我假设您在单击 "Add" 按钮时添加了一个新行。它只是一个新行,不会有任何数据。当用户输入数据时,事件已经处理,textbox10
不会更新。
您应该使用 DataGridView.CellValueChanged
事件来更新您的列总数。
代码示例:
void dgvFE_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 4)
{
textBox10.Text = (from DataGridViewRow r in dgvFE.Rows
select Convert.ToDouble(r.Cells[e.ColumnIndex].Value))
.Sum().ToString();
}
}