System.Windows.Forms.DataGridView cells do not support merging the normal way. At some forums, developers advise the use of the
CellPainting event of
DataGridView. But this solution is not good if you need to realize complicated mergings.
DataGridViewTextBoxCellEx supports spanning without any additional code.
Using the Code
DataGridViewTextBoxCellEx in a project, include the DataGridViewTextBoxCellEx.cs file, and then you can add
DataGridViewTextBoxColumnEx in the columns editor of the
Merging of cells is performed by setting the
RowSpan properties of the left top
DataGridViewTextBoxCellEx cell of the target region. For successful merging, all cells of the region must be of the
var cell = (DataGridViewTextBoxCellEx)dataGridView1[0, 0];
cell.ColumnSpan = 3;
cell.RowSpan = 2;
As a result, the
dataGridView1[0, 0] cell will occupy the region from (0, 0) to (2, 1) (see screenshot at the top). The merged cell will look as the top left cell of the region. And if you wish to address a merged cell, you need to address the top left cell of the merged region. The merged region will look and behave as a normal
System.Windows.Forms.DataGridViewTextBoxCell. You can edit it the standard way (pressing F2, clicking or typing text).
DataGridViewTextBoxCellEx also has a property
OwnerCell. For unmerged cells and for the left top cells of the merged regions, it is
null. For other cells of the merged region, the property points to the left top cell.
- 11th March, 2009: Initial post
- 9th March, 2010: Article updated
- 21st December, 2010: Demo and source files updated