导读:
在给朋友做的一个软件中用到datagridview 中添加一行合计行的问题,个人认为用sql在数据集中直接添加然后直接读入datagridview的方法比较好,以下是从网上找到一些解决方法,抄袭。:)
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底行合计数 的四个方法
///
/// 计算合计算
///
/// 要计算的DataGridView
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();
st
在给朋友做的一个软件中用到datagridview 中添加一行合计行的问题,个人认为用sql在数据集中直接添加然后直接读入datagridview的方法比较好,以下是从网上找到一些解决方法,抄袭。:)
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底行合计数 的四个方法
///
/// 计算合计算
///
/// 要计算的DataGridView
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();
st