如何在datagridview中进行简单的数学运算

时间:2010-04-17 04:09:09

标签: c# math datagridview

我有一个包含9列的datagridview。我只是尝试获取第5列中的值并从第6列中减去它,然后在第9列中显示结果。看起来很简单,我知道它一直在excel中完成。但我无法弄清楚这一点。我是否需要使用名为calculate columns的方法创建一个新类?或者datagridview类是否已经内置了可以处理此问题的内容?

3 个答案:

答案 0 :(得分:1)

下面的示例代码显示了如何检索给定位置(列和行,0索引)的值,然后尝试将这些值转换为数字。然后,您可以将计算存储回DataGridView中的另一个单元格。

object value1 = dataGridView1[4, 0].Value;
object value2 = dataGridView1[5, 0].Value;

int val1, val2;
if (int.TryParse(value1.ToString(), out val1) && int.TryParse(value2.ToString(), out val2))
{
    dataGridView1[8, 0].Value = val1 - val2;
}
else
{
    MessageBox.Show("cannot subtract, invalid inputs.");
}

答案 1 :(得分:1)

public void dataGridView_Cellformatting(object sender, DataGridViewCellFormattingEventArgs args)
{
    if(args.ColumnIndex == 9) //Might be 8, I don't remember if columns are 0-based or 1-based
    {
        DataGridViewRow row = dataGridView.Rows[e.RowIndex];
        args.Value = (int)row.Cells[6].Value - (int)row.Cells[5].Value;
    }
}

链接:CellFormatting事件,DataGridViewcellFormattingEventArgs

答案 2 :(得分:1)

将DataGridView绑定到DataTable,并为列提供相关表达式。尝试推断这个例子:

        DataTable table = new DataTable();
        table.Columns.Add("Column1", typeof(int));
        table.Columns.Add("Column2", typeof(int));
        table.Columns.Add("Column3", typeof(int), "Column1+Column2");
        dataGridView1.DataSource = table;

其中'dataGridView1'是典型的DataGridView控件。