Winform DataGridView 合并一行单元格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform DataGridView 合并一行单元格相关的知识,希望对你有一定的参考价值。

具体需求是做一个通讯录,按部门分组。 合并的那一行是部门名称,在该部门所有员工的上面插入。(如图所示)

参考技术A

Windows Forms DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.DrawString 自己来“画”。

参考:

http://hi.baidu.com/anymis/item/ba9cfd1c6fd414f99d778a4e

具体思路:

绑定DataGridView前,先把所有需要合并的行号记录到一个数组变量中

调用DataGridView的Bind方法后,会触发CellPainting事件

在CellPainting事件中,先判断行号是否在数组中

如果在数组中,清除单元格、修改背景色、仅绘制上下边框线

再判断是否为第一列(e.ColumnIndex为0)

如果为第一列,设置单元格的内容为部门名称(e.Value = “...”)

参考技术B 在后台吧数据赋值给 DataTable
然后给 DataTable 加一行 在把整个DataTable返回前台追问

是这样做的 问题是我想把这一行的单元格合并掉

以上是关于Winform DataGridView 合并一行单元格的主要内容,如果未能解决你的问题,请参考以下文章

C#Winform中DataGridView合并单元格的问题?

C#winform中给datagridview的每一行添加按钮

winform如何从DataGridView中从右键菜单获取一行数据

c# winform DataGridView添加一行,添加数据后,保存到数据库

c# winform datagridview第一行单元格不能调整高度~~

用c#winform拖的datagridview控件,当选中一行数据以后鼠标离开之后,就选不中了