-1

我想在 C# 中 datagridview 的最后一行之后打印一个标签。行数会改变。像这样

在此处输入图像描述

和这个

在此处输入图像描述

所以我想要的是在上面图片中突出显示的红色区域中打印一个包含金额总和的标签。我正在做的就像计算datagridview的行并像这样设置它:

string psum = sum.ToString("#,##0");
int dgrows = dgvmain.Rows.Count * 20;
e.Graphics.DrawString("Total Amount :" + psum, print6B, Brushes.Black, 100, 160+dgrows);

我计算了这样的总和:

sum = 0;
for (int i = 0; i < dgvmain.Rows.Count; ++i)
{
    sum += Convert.ToInt32(dgvmain.Rows[i].Cells[3].Value);
}

但上述解决方案在数据网格视图的最后一行之后以及随着行数的增加有很多空间的意义上是行不通的。

4

3 回答 3

0

我即将在我的项目中制作这个东西(称为“统计”)。在使用ListView(在虚拟模式下)时,该解决方案应该对DataGridViewmethink 有同样的好处。您必须制作一个组件(控件),它将模仿绑定到它的标题控件并自动获取选择或整个行数并计算统计信息。可以通过以下方式为此控件提供某种信息Header.Tag

if(header.Tag is INoStatistic) { /* do nothink */ }

与使用序号行相比,这种方法的优势在于您的统计信息始终可见(有点像“冻结列”或刚刚发布的@Ramakrishna.p,一个页脚),您可以DataGridView在将来使用它。

完成后我会更新我的答案(如果有兴趣),或者你会先完成?=D

于 2013-08-19T07:04:41.597 回答
0

只需添加仅包含汇总数据的具有不同样式的另一行。

于 2013-08-19T06:47:57.630 回答
0

您可以使用如下所示的 gridview 页脚模板并将总和值设置为标签控件

<footertemplate>
  <asp:Lablel id="lbltotal"   runat="server"/>
</footertemplate>

更多解释请参考

http://msdn.microsoft.com/en-us/library/ms972833.aspx

http://www.codeproject.com/Questions/375489/how-to-calculate-total-price-in-the-footer-of-grid

http://www.dotnetfunda.com/forums/thread8330-grid-view-footer-column-calculation.aspx

于 2013-08-19T06:57:19.160 回答