Using the C1FlexGrid Control > Merging Cells > Merged Table Headers |
To create merged table headers, you must start by setting the grid' s AllowMerging property to FixedOnly. Then, designate the rows and columns that you want to merge by setting the row and column' s AllowMerging properties. Finally, assign the text to the header cells so that the cells you want to merge have the same contents.
The code below shows an example:
To write code in Visual Basic
Visual Basic |
Copy Code
|
---|---|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i% ' Initialize the control. _flex.Styles.Normal.WordWrap = True _flex.Cols.Count = 9 _flex.Rows.Fixed = 2 _flex.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.FixedOnly ' Create row headers. _flex.Rows(0).AllowMerging = True ' Merge the four cells with same contents. Dim rng As C1.Win.C1FlexGrid.CellRange = _flex.GetCellRange(0, 1, 0, 4) rng.Data = "North" ' Merge the four cells with same contents. rng = _flex.GetCellRange(0, 5, 0, 8) rng.Data = "South" For i = 1 To 4 _flex(1, i) = "Qtr " & i _flex(1, i + 4) = "Qtr " & i Next ' Create the column header. _flex.Cols(0).AllowMerging = True ' Merge the two cells with same contents. rng = _flex.GetCellRange(0, 0, 1, 0) rng.Data = "Sales by Product" ' Align and autosize the cells. _flex.Styles.Fixed.TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter _flex.AutoSizeCols(1, _flex.Cols.Count - 1, 10) End Sub |
To write code in C#
C# |
Copy Code
|
---|---|
private void Form1_Load(System.object sender, System.EventArgs e) { int i; // Initialize the control. _flex.Styles.Normal.WordWrap = true; _flex.Cols.Count = 9; _flex.Rows.Fixed = 2; _flex.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.FixedOnly; // Create row headers. _flex.Rows[0].AllowMerging = true; // Merge the four cells with same contents. C1.Win.C1FlexGrid.CellRange rng = _flex.GetCellRange(0, 1, 0, 4); rng.Data = "North"; // Merge the four cells with same contents. rng = _flex.GetCellRange(0, 5, 0, 8); rng.Data = "South"; for ( i = 1 ; i <= 4; i++) { _flex[1, i] = "Qtr " + i; _flex[1, i + 4] = "Qtr " + i; } // Create the column header. _flex.Cols[0].AllowMerging = true; // Merge the two cells with same contents. rng = _flex.GetCellRange(0, 0, 1, 0); rng.Data = "Sales by Product"; // Align and autosize the cells. _flex.Styles.Fixed.TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter; _flex.AutoSizeCols(1, _flex.Cols.Count - 1, 10); } |
This is the result: