Click here to Skip to main content
15,867,308 members
Articles / Desktop Programming / Windows Forms

DataGridVewTextBoxCell with Span Behaviour

Rate me:
Please Sign up or sign in to vote.
4.92/5 (41 votes)
18 Jun 2013CPOL1 min read 275.4K   17.4K   102   114
DataGridViewTextBoxCell derived cell that can be merged with cells of the same type
Image 1

Introduction

The standard 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

To use DataGridViewTextBoxCellEx in a project, include the DataGridViewTextBoxCellEx.cs file, and then you can add DataGridViewTextBoxColumnEx in the columns editor of the DataGridView control.

Merging of cells is performed by setting the ColumnSpan and RowSpan properties of the left top DataGridViewTextBoxCellEx cell of the target region. For successful merging, all cells of the region must be of the DataGridViewTextBoxCellEx type.

C#
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.

History

  • 11th March, 2009: Initial post
  • 9th March, 2010: Article updated
  • 21st December, 2010: Demo and source files updated

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer EKRA
Russian Federation Russian Federation
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionValue in spanned cells Pin
rinaldin20-Feb-24 1:00
rinaldin20-Feb-24 1:00 
QuestionДобавка новых строк или столбцов Pin
Member 1556606414-Mar-22 6:55
Member 1556606414-Mar-22 6:55 
AnswerRe: Добавка новых строк или столбцов Pin
Sergey Semyonov15-Mar-22 0:56
Sergey Semyonov15-Mar-22 0:56 
QuestionPrinting datagridview Pin
Member 1227039419-Jul-19 8:44
Member 1227039419-Jul-19 8:44 
QuestionThank you! Pin
Member 1094518022-Feb-19 11:00
Member 1094518022-Feb-19 11:00 
Questionproblem allowusertoordercolumns Pin
maxim^31-Oct-18 4:04
maxim^31-Oct-18 4:04 
QuestionDrawToBitmap not working for merged cells content Pin
LarnRegis28-Jun-18 3:01
LarnRegis28-Jun-18 3:01 
SuggestionSugestion for the error "System.Windows.Forms.DataGridViewTextBoxCell" to "SpannedDataGridView.DataGridViewTextBoxCellEx" Pin
Marcelo Fujii23-May-17 9:13
Marcelo Fujii23-May-17 9:13 
QuestionDelete dynamically some column Pin
Member 1283496128-Feb-17 1:36
Member 1283496128-Feb-17 1:36 
QuestionGreat work Pin
Member 88272063-Oct-16 1:16
Member 88272063-Oct-16 1:16 
PraiseYou saved my life. Thank you very much! Pin
Corwyn25-May-16 22:30
professionalCorwyn25-May-16 22:30 
GeneralRe: You saved my life. Thank you very much! Pin
Sergey Semyonov25-May-16 23:43
Sergey Semyonov25-May-16 23:43 
SuggestionCreate new column dynamically and center text Pin
cyrilcp18-Aug-15 4:52
cyrilcp18-Aug-15 4:52 
QuestionProblem with borders when missing column headers and row headers but having frozen rows and columns Pin
Veselin Tenev9-Jun-15 5:38
Veselin Tenev9-Jun-15 5:38 
QuestionThanks Pin
Member 1143671712-Feb-15 22:05
Member 1143671712-Feb-15 22:05 
Questiontext alignment Pin
sudipto107-Dec-14 23:22
sudipto107-Dec-14 23:22 
QuestionUnable to cast. Pin
Manjun.ravindra4-Jun-14 4:09
Manjun.ravindra4-Jun-14 4:09 
AnswerRe: Unable to cast. Pin
vsvlad22-Apr-15 7:27
vsvlad22-Apr-15 7:27 
QuestionCan't convert "System.Windows.Forms.DataGridViewTextBoxCell" to "SpannedDataGridView.DataGridViewTextBoxCellEx" Pin
BRS1530-Apr-14 2:38
BRS1530-Apr-14 2:38 
AnswerRe: Can't convert "System.Windows.Forms.DataGridViewTextBoxCell" to "SpannedDataGridView.DataGridViewTextBoxCellEx" Pin
vsvlad22-Apr-15 7:27
vsvlad22-Apr-15 7:27 
QuestionThanks it really help me alot Pin
Ashish Bachhav12-Mar-14 7:00
Ashish Bachhav12-Mar-14 7:00 
AnswerRe: Thanks it really help me alot Pin
Sergey Semyonov12-Mar-14 21:06
Sergey Semyonov12-Mar-14 21:06 
QuestionAdd Borders to a cell Pin
Member 102053812-Feb-14 12:41
Member 102053812-Feb-14 12:41 
AnswerRe: Add Borders to a cell Pin
Sergey Semyonov13-Feb-14 2:24
Sergey Semyonov13-Feb-14 2:24 
GeneralRe: Add Borders to a cell Pin
Member 102053814-Feb-14 9:56
Member 102053814-Feb-14 9:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.