DataGridView 二维表头与合并单元格 1、在项目中添加“组件类”。 2、所引用的命名空间如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Drawing; using System.Drawing.Design; using System.Diagnostics; 3、DataGridView 二维表头与合并单元格类,继承 DataGridView 类 public partial class HeaderUnitView : DataGridView { private TreeView[] _columnTreeView; private ArrayList _columnList = new ArrayList(); private int _cellHeight = 17; public int CellHeight { get { return _cellHeight; } set { _cellHeight = value; } } private int _columnDeep = 1; private bool HscrollRefresh = false; /// /// 水平滚动时是否刷新表头,数据较多时可能会闪烁,不刷新时可能显示错误 /// [Description("水平滚动时是否刷新表头,数据较多时可能会闪烁,不刷新时可能显示错误")] public bool RefreshAtHscroll { get { return HscrollRefresh; } set { HscrollRefresh = value; } } /// /// 构造函数 /// public HeaderUnitView() { InitializeComponent(); this.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //设置列高度显示模式 } public HeaderUnitView(IContainer container) { container.Add(this); InitializeComponent(); } [Description("设置或获得合并表头树的深度")] public int ColumnDeep { get { if (this.Columns.Count == 0) _columnDeep = 1; this.ColumnHeadersHeight = _cellHeight * _columnDeep; return _columnDeep; } set { if (value < 1) _columnDeep = 1; else _columnDeep = value; this.ColumnHeadersHeight = _cellHeight * _columnDeep; } } [Description("添加合并式单元格绘制的所需要的节点对象")] public TreeView[] ColumnTreeView { get { return _columnTreeView; } set { if (_columnTreeView != null) { for (int i = 0; i <= _columnTreeView.Length...