C# 实时C中datagridview中的列总和#
我正在使用datagridview。 如何实时获取数量总和。我试过这个:C# 实时C中datagridview中的列总和#,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我正在使用datagridview。 如何实时获取数量总和。我试过这个: DataTable Dt = (DataTable)dataGridView1.DataSource; if (int.TryParse(Dt.Compute("SUM(Qty)", "").ToString(), out Sum)) { textBoxQtyinStock.Text = Sum.ToString("N0"); } 在datagridview的RowLeave、CellLeave、CellVal
DataTable Dt = (DataTable)dataGridView1.DataSource;
if (int.TryParse(Dt.Compute("SUM(Qty)", "").ToString(), out Sum))
{
textBoxQtyinStock.Text = Sum.ToString("N0");
}
在datagridview的RowLeave、CellLeave、CellValueChanged、CellValidated事件中调用此函数。但这对我不起作用。我怎样才能做到这一点 必须计算Qty列的sun的方法看起来是正确的,但是您在调试器中看到Dt.compute返回什么了吗
// Declare an "object"
object sumQty;
sumQty = table.Compute("Sum(Qty)", "");
据我所知,您不需要触发任何事件来计算DataTable中已有的数据
如果您的问题是在插入新数据后如何触发DataTable的更新,则需要为正在编辑的单元格处理EndEdit事件
我希望这是有意义的。您可能正在寻找
DataGridView
的CellValueChanged
事件。每次单元格值更改时,都会触发此事件。触发此事件时,将进行检查,以查看是否在包含要求和的值的列中更改了单元格。如果更改的单元格位于要求和的列中,则只需循环该列中的值,并更新文本框以反映新的求和值
下面是我正在描述的一个例子。第四列(称为“点”)包含该列中的整数值。CellValueChanged
事件检查更改的单元格是否来自“点”列(第3列),如果是,则更新文本框
当用户输入新值或更改现有值时…文本框应自动更新以反映这些更改。我希望这是有意义的,对你有用
DataTable dt = new DataTable();
private void Form_DGV_DataTable_Load(object sender, EventArgs e) {
dt = Utilities.GetTableWithPlayers(filePath);
dataGridView1.DataSource = dt;
UpdatePoints();
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) {
if (e.ColumnIndex == 3)
UpdatePoints();
}
private void UpdatePoints() {
textBox1.Text = dt.Compute("SUM(Points)", "").ToString();
}
它计算总和,但不是实时的。我想在用户输入StockOK后立即计算sum,然后您只需要确保处理EndEdit事件或DataTable和call table中新数据可用后触发的任何事件;再说一次。你能推荐一个最合适的事件吗?好的,当然-但是你需要告诉你如何将数据绑定到数据网格。截图其实没说多少!我遗漏了确切的问题,您正在寻找正确的事件,请检查您是否考虑使用
DataGridView
sCellValueChanged
事件?只要单元格中的值发生更改,就会触发此事件。只需检查更改的单元格是否在“数量”列中,如果是,则更新文本框。只是一个想法。