c# - DataGridView 列中的计算

标签 c# .net winforms datagridview

我有一个 DataGridView,我想在其中将两个不同列的值相加到第三列中。

示例数据 GridView :

A   B   Total
1   2    3
25  35   60
5   -5   0

我想在 A & B 列 中输入值或离开当前行后,总共添加 (A+B)。并且还想将 Total Column 设置为 ReadOnly

最佳答案

您可以在 CellValidatedEvent 上执行此操作,并且可以将相同的方法应用于 RowValidated:

 private void dataGridView_CellValidated(object sender, DataGridViewCellEventArgs e) {
                if (e.RowIndex > -1) {
                    DataGridViewRow row = dataGridView.Rows[e.RowIndex];
                    string valueA = row.Cells[columnA.Index].Value.ToString();
                    string valueB = row.Cells[columnB.Index].Value.ToString();
                    int result;
                    if (Int32.TryParse(valueA, out result)
                        && Int32.TryParse(valueB, out result)) {
                        row.Cells[columnTotal.Index].Value = valueA + valueB;
                    }
                }
            }

您可以在设计器中将列设置为 ReadOnly,或者像这样:

dataGridView.Columns["Total"].ReadOnly = true

关于c# - DataGridView 列中的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097370/

相关文章:

c# - 具有永久任务/线程的 TPL 数据流 block

c# - 如何在 DateTimePicker 中设置当前时间

c# - UI线程既运行消息泵又执行代码?

c# - 带有面板的自己的组件

c# - 从非托管代码获取 COM 对象

c# - 操作数类型冲突 : varchar is incompatible

.net - 通过 wsHttpBinding 在 PHP 中调用 WCF WebService

c# - 是否可以使用 .NET 异步方法获得良好的堆栈跟踪?

c# - 异步/等待问题 - 等待的操作结束会发生什么?

c# - 如何让 .NET 4 应用程序的主窗体出现在最前面?