WinFormDataGridView的行统计实现
做WinForm开发离不开一些基本的控件,作为数据列表显示控件中,其中最为重要的要数 DataGridView,以前用的是一些第三方控件,提供了比较灵活和方便的功能,比如:根据某列分组统计等等,确实方便,但加载第三方控件的缺点就是加载数据太慢,打包布署后体积大,更为甚者还要收费,咱又不能用盗版,没办法自力更生才是生存之道。
DataGridView的行统计汇总功能在网络上搜索后,有一些同仁实现过(Summary DataGridView),但只是在某种特定的需求下实现了目标,要么是扩展不方便,要么是性能太差,加载一个DataGridView不知重复运行几十次代码(未做详细统计) ,为了一劳永逸的解决这个问题,特改写了代码,在此提供给各位同仁,欢迎斧正。
1、首先,看使用方法:
(new string[] { "e", "TotalFee", "TotalCost", "SaleAmount", "RetainedProfits" });
如果不使用统计汇总,不会对现有 DateGridView控件产生任何负作用,也不占用内存;"e", "TotalFee", "TotalCost", "SaleAmount", "RetainedProfits" 为要统计的各行。
效果如下:
代码如下:
1、DataGridView扩展方法定义
代码
#region 显示统计列
/// <summary>
/// 显示DataGridView的统计信息
/// </summary>
/// <param name="dgv"></param>
/// <param name="SummaryColumns">要统计的列名称或数据源绑定列名称</param>
public static void ShowSummary(this DataGridView dgv,string[] SummaryColumns)
{
SummaryControlContainer summaryControl = new SummaryControlContainer(dgv,SummaryColumns);
(summaryControl);
// = summaryControl;
();
();
}
/// <summary>
/// 显示DataGridView的统计信息
/// </summary>
/// <param name="dgv"></param>
/// <param name="DisplaySumRowHeader">是否显示合计行标题</param>
/// <param name="SumRowHeaderText">合计列标题</param>
/// <param name="SumRowHeaderTextBold">合计列标题用粗体显示</param>
/// <param name="SummaryColumns">要统计的列名称或数据源绑定列名称</param>
public static void ShowSummary(this DataGridView dgv, bool DisplaySumRowHeader, string SumRowHeaderText, bool SumRowHeaderTextBold, string[] SummaryColumns)
{
SummaryControlContainer summaryControl = new SummaryControlContainer(dgv, DisplaySumRowHeader, SumRowHeaderText, SumRowHeaderTextBold, SummaryColumns);
(summaryCo
WinFormDataGridView的行统计实现 来自淘豆网www.taodocs.com转载请标明出处.