在国内做软件总是会遇到这样哪样的特殊问题,客户需要用双层表头来表示数据,在DataGridView 中找了无数个属性,这么强大的控件竟然没有这个小小的功能!百度、Google了一番,有好多解决方案,都是自己用GDI重绘表头,但都没给核心代码,好在这个也不复杂,只不过是个算法问题罢了。自己MSDN一番,基本上解决了。效果如下:
代码只有一句:this.GridView1.TitleHeader = new string[] {"2|合计|3"};
在设计时即可见到效果。
解释:
*利用DataGridView控件重载,实现双层表头功能。其中第一层可有合并列,
* 第二层为基本列,即不包含合并列。
* 使用:如果是双表头,ColumnHeadersHeightSizeMode 不能设置为AutoSize,
* 同时最好把表头的Height设置为50,对于合并列,在属性中更改TitleHeader,
* TitleHeader属性格式为:合并列起始位置从1开始|列名称|占列个数Colspan
* 示例:5|去年同期|2,其意义是把第5和第6列合并,标题为“去年同期”。
* 如果有多个合并列,请回车换行后按格式添加。
* 不设置TitleHeader属性,控件仍为原基本功能。
该文章转载自网络大本营:http://www.xrss.cn/Dev/DotNet/2007102217073.Html