简介:这是由明振居士开发的一个基于Windows Forms平台的DataGridView控件的增强版插件。它提供了许多额外的功能和性能改进,旨在提高数据管理和交互体验。该版本发布于2012年2月24日。
开发环境为VS2012 C#源码及完全样例此版本为2012.2.24日更新版本,更新内容如下:
- 最后修改时间:2012年2月24日 增加了汇总信息的自定义控制属性,请参考功能描述第12条
- 修正过多列时父标题不显示的问题,并优化算法以解决标题头重叠及不能换行的情况,详情请见说明第11条
总的功能列举如下:
```csharp
/****************************************************************************************************
* Copyright (C) 2012 明振居士 版权没有,任意拷贝及使用,但对使用造成的任何后果不负任何责任。
* 文件名:DataGridViewEx.cs
* 创建人:明振居士
* 创建时间:2010年6月1日
* 最后修改时间:2012.2.24 增加了汇总信息的自定义控制属性,参见功能描述第12条。
*
* 标题:用户自定义的DataGridView控件
* 功能描述:扩展DataGridView控件功能
*
* 扩展功能:
* 1、搜索Search();有两个同名方法,参数不同。F3为快捷键继续向下搜索
* 2、用TreeView HeadSource 设置复杂的标题样式,如果某个节点对应的显示列隐藏,请将该节点Tag设置为hide。
隐藏列的排列位置与绑定数据元列位置对应,树叶节点的顺序需要与结果集的列顺序一致
* 3、通过反射导出Excel。无需引用com组件,方法ExportExcel()不受限制于列数。表头同样可以导出,
AutoFit属性设置是否自动调整单元格宽度。
导出内容支持自定义:Title List Header List Footer, 支持在设计时值的设定,
窗口关闭时Excel资源将彻底释放
* 4、通过调用方法SetColumnVisible()可以自己任意设定那些列显示及不显示。
* 5、设置列标题SetHeader(), 设置列永远可见AlwaysShowCols(), 设置列暂时不可见HideCols()
注意:当使用了TreeView作为复杂Header时,不要使用本方法。Header显示的内容根据treeview内容而显示
* 6、保存和加载列宽度及顺序的属性 SaveGridView() 和 LoadGridView()
* 7、支持所见即所得的打印功能。
如下例子:
private void button5_Click(object sender, EventArgs e)
{
DGVPrinter printer = new DGVPrinter();
printer.PrintPreviewDataGridView(DataGridViewEx1);
}
* 8、自定义合并行与列,行合并用 MergeRowColumn 属性,列合并用MergeColumnNames属性,
都可以定义多个列
* 9、设置行标号的显示 bool ShowRowNumber;
* 10、增加最后一行的汇总行。支持对特定列应用聚合函数。
假设要为id 列添加“合计”字符,avgPrice进行平均值计算,
total 列显示总和,则需要在ComputeColumns属性中加入以下内容:
id, 合计:;
avgPrice, Avg(avgPrice);
total, Sum(total)
* 如果对数值有格式化需求,请实现beforeShow事件。
增加了导出和打印对应的支持,所见即所得的对齐方式应用于导出及打印
* 11、列标题头自动换行。默认设置为每个列标题头行高为22,
如果设置字体更大,则将进行计算以实现多行显示。
如需调整,请调节ColumnHeaderHeight属性值,其估算方法为预计的标题层数乘以22
* 12、针对第10条功能。增加汇总信息的自定义控制属性:
汇总字体SummaryFont, 汇总字体颜色SummaryFontColor,
汇总背景色SummaryBGColor,边框与整个表格边框一致。
****************************************************************************************************/
```