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