DataGridView是使用很多的控件,可是却没有底部合计行的功能,在做一个小项目时有很多地方要用到,就通过下面的方法实现了这一功能:
把下面
#region 添加DataGridView底行合计数 的四个方法
和
#endregion 添加DataGridView底行合计数 的四个方法
之间的 代码拷贝到你的程序中
然后再 给要计算合计的 DataGridView 对象(此处假定为dataGridView1) 绑定 下面的方法及 数据表 则可:
这里假设通过点击 按钮 之后 绑定
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataSourceChanged += new EventHandler(dataGridView_DataSourceChanged);
dataGridView1.ColumnHeaderMouseClick += new DataGridViewCellMouseEventHandler(dataGridView_ColumnHeaderMouseClick);
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView_CellValueChanged);
dataGridView1.AllowUserToAddRows = false;
dataGridView1.DataSource = 这里是要绑定的数据表;
}
#region 添加DataGridView底行合计数 的四个方法
/// <summary>
/// 计算合计算
/// </summary>
/// <param >要计算的DataGridView</param>
private void SumDataGridView(DataGridView dgv)
{
#region 计算合计数
//DataGridView dgv = (DataGridView)sender;
if (dgv.DataSource == null) return;
DataTable dt = (DataTable)dgv.DataSource;
if (dt.Rows.Count < 1) return;
decimal[] tal = new decimal[dt.Columns.Count];
DataRow ndr = dt.NewRow();
string talc = "";
int number = 1;
foreach (Dat