DatagridView默认不支持多行表头的实现,一些第三方的控件,比如Spread就可以,因此要实现这个功能,只能自己想办法了。
介绍两种思路:
1,用重写DataGridView的Paint等方法,可以重画表头,这个实现起来较为复杂,费时费力,此处略去。
2,利用两个DataGridView,一个DataGridView用来显示第一行标题,另一个DatagridView用来显示第二行表头以及数据部分。
实现中遇到一个问题,当列数很多的时候,第二个DatagridView会出现水平滚动条,拉动滚动条,第一个DatagridView并没有随着同步滚动,解决这个问题的方法
是在第二个DatagridView的Scroll事件中写如下代码:

void dataGridView2_Scroll(object sender, ScrollEventArgs e)
{
//滚动条的位置同步
this.dataGridView1.HorizontalScrollingOffset = this.dataGridView2.HorizontalScrollingOffset
}

  有了上面的代码,功能基本就出来了,但是有几个问题要注意:

1)第二个DatagridView数据太多出现竖滚动条的时候,横滚动条拉到最后一列的位置,会出现上下两个DatagridView轻微错位(一个滚动条的宽度),
原因是第一个DatagridView没有竖滚动条,滚动的幅度会比下面一个DatagridView小一个滚动条的宽度。知道了原因,我们可以调整第一个DatagridView的
最后一列宽度假设为100,第二个DatagridView的最后一列的宽度为100-20=80,这个就预留出一个滚动条的位置。
2)这两个DatagridView的列最后都设置成不能调整宽度,否者会出现列错位的现象。

效果图:

双行表头DatagridView的简单实现的更多相关文章

  1. Winform开发常用控件之DataGridView的简单数据绑定——自动绑定

    DataGridView控件可谓是Winform开发的重点控件,对于数据的呈现和操作非常方便,DataGridView可谓是既简单又复杂.简单在于其已经集成了很多方法,复杂在于可以使用其实现复杂的数据 ...

  2. 终于搞定了cxgrid的多行表头(转终于搞定了cxgrid的多行表头 )

    终于搞定了cxgrid的多行表头 转自:http://mycreature.blog.163.com/blog/static/556317200772524226400/     这一周都在处理dbg ...

  3. Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等

    目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...

  4. Js实现table单双行交替色

    依稀记得,当初我刚学编程的时候还学过怎么实现表格单双行交替色,现如今早已记不清当时的实现思路,这两天突然想起,没事就自己写了一小段代码,也不知道是否是当年的思路,不过不用纠结这个问题.:) 代码很简单 ...

  5. table 控制单双行颜色以及鼠标hover颜色 table光棒

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. repeater单双行颜色不同,gridview repeater DataList 鼠标经过改变背景颜色

    1.gridview 双击GridView的OnRowDataBound事件: 在后台的GridView1_RowDataBound()方法添加代码,最后代码如下所示: protected void  ...

  7. html table单双行颜色间隔(转载)

    直接上代码: <html> <head> <meta http-equiv="Content-Type" content="text/htm ...

  8. devexpress实现多行表头(复合表头),附源代码

    在许多项目中都会涉及到复合表头(多行表头),这里给大家分享一个devexpress实现多重表头的案例. 1.第一步将表格类型由默认的gridview变为bandedgridview,如图所示: 2.第 ...

  9. DevExpress GridControl复合表头(多行表头)设置

    关于DevExpress.XtraGrid的复合表头或多行表头的示例,界面如下图所示 1.首先要把DevExpress的GridControl转换为BandedGridView 2.设置显示列及绑定的 ...

随机推荐

  1. java配置使用手册

    进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1.下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是 ...

  2. MNIST数据集和IDX文件格式

    MNIST数据集 MNIST数据集是Yan Lecun整理出来的. NIST是美国国家标准与技术研究院(National Institute of Standards and Technology)的 ...

  3. 【LeetCode】146. LRU Cache

    LRU Cache Design and implement a data structure for Least Recently Used (LRU) cache. It should suppo ...

  4. PHP5.3新特性

    1.首先对之前滥用的语法进行了规范 众所周知PHP在语言开发过程中有一个很好的容错性,导致在数组或全局变量中包含字符串不使用引号是可以不报错的,很多业余的开发者因为懒惰而产生的安全问题十分严重,之所以 ...

  5. python os库学习笔记

    os.getcwd(): 获取当前目录 os.name: 获取当前使用的操作系统 eg: print os.name os.remove(): 删除指定文件 eg: os.remove('test.t ...

  6. Open SSH原理

    OpenSSH(免费的 SSH 的实现)类似于 telnet 或rsh,ssh 客户程序也可以用于登录到远程机器.所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程.但是,与 telne ...

  7. OGG_GoldenGate数据传递文件Trial(案例)

    2014-03-05 Created By BaoXinjian

  8. Linux内核(5) - 内核学习的相关资源

    “世界上最缺的不是金钱,而是资源.”当我在一份报纸上看到这句大大标题时,我的第一反应是——作者一定是个自然环保主义者,然后我在羞愧得反省自身的同时油然生出一股对这样的无产主义理想者无比崇敬的情绪来. ...

  9. C# list介绍

    一.LIST概述 所属命名空间:System.Collections.Generic      public class List<T> : IList<T>, ICollec ...

  10. bs-web项目时会经常打断点跟踪信息,可是循环时总是F10、F10的按,那么把所数据打印出来查看会更方便

    bs-web项目时会经常打断点跟踪信息,可是循环时总是F10.F10的按,那么把所数据打印出来查看会更方便 一.打断点的方式适合在有错误产生的时候用很好用. 二.可是在分析数据时不直观,得一个一个循环 ...