上周发了一篇《为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展》,展示了我们为了开发低代码所以对DataGridView控件做的一些扩展,然后有些朋友希望能够给出具体的实现,所以把相关代码抽取出来,先描述下怎么实现“合并列表头”的功能。
先上效果图往往是最好的:

效果图
实现其实很简单,主要做了两点:
1、扩展DataGridViewColumn;
由于要合并列表头,那么我们需要一些额外的扩展信息:合并后的HeaderText,如上图中的“本月业绩”和“上月业绩”、合并列数、以及单元格是否属于合并单元格,比如上图中的“订单数”这一列,那需要能够设置合并后的HeaderText,也需要设置合并列数。但是“订单金额”列,显然只需要知道自己属于某个合并列就行。

扩展了一个DataGridViewExt列
2、扩展DataGridViewColumnHeaderCell;
扩展HeaderCell的目的是要在Paint中重新绘制HeaderCell,所以主要代码在override的Paint方法中。

代码比较简单,为了各位能够拷贝就能使用,直接把代码贴上来,希望能够帮助到您:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace eHelper.UnitTest
{
public partial class DataGridViewTestForm : Form
{
private DataGridViewColumnExt SalesName;
private DataGridViewColumnExt MonthOrders;
private DataGridViewColumnExt MonthAmt;
private DataGridViewColumnExt PreMonthOrders;
private DataGridViewColumnExt PreMonthAmt;
public DataGridViewTestForm()
{
InitializeComponent();
InitDataGridView();
}
private void InitDataGridView()
{
this.DataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.DataGridView.ColumnHeadersHeight = 42;

文章介绍了如何为低代码平台扩展.NET的DataGridView控件,特别是实现了列表头的合并功能。通过扩展DataGridViewColumn和DataGridViewColumnHeaderCell,添加额外的属性来存储合并信息,并在Paint方法中重绘HeaderCell,从而达到合并效果。示例代码被提供以展示具体实现。
最低0.47元/天 解锁文章
6017

被折叠的 条评论
为什么被折叠?



