C1.Win.C1FlexGrid Namespace > C1FlexGrid Class > GetMergedRange Method : GetMergedRange(Int32,Int32,Boolean) Method |
'Declaration
Public Overloads Overridable Function GetMergedRange( _ ByVal row As Integer, _ ByVal col As Integer, _ ByVal clip As Boolean _ ) As CellRange
'Usage
Dim instance As C1FlexGrid Dim row As Integer Dim col As Integer Dim clip As Boolean Dim value As CellRange value = instance.GetMergedRange(row, col, clip)
Cell merging is controlled by the AllowMerging property. The GetMergedRange(Int32,Int32,Boolean) method allows you to determine whether a cell is merged with adjacent cells.
You can override the GetMergedRange(Int32,Int32,Boolean) method to implement custom merging logic. If you do this, make sure the merging method is consistent and efficient, since it gets called frequently and affects the grid's appearance and behavior.
private void _flex_SelChange(object sender, System.EventArgs e) { CellRange rg = this._flex.GetMergedRange(_flex.Row, _flex.Col, false); if (!rg.IsSingleCell) { Console.WriteLine("selection is merged: {0},{1}-{2},{3}", rg.TopRow, rg.LeftCol, rg.BottomRow, rg.RightCol); } }
public class CustomMerge : C1FlexGrid { public CustomMerge() { // allow free merging by default AllowMerging = AllowMergingEnum.Free; for (int r = 0; r < Rows.Count; r++) Rows[r].AllowMerging = true; for (int c = 0; c < Cols.Count; c++) Cols[c].AllowMerging = true; } override public CellRange GetMergedRange(int row, int col, bool clip) { // merge cells in range (1,1)-(3,3) if (row >= 1 && row <= 3 && col >= 1 && col <= 3) return GetCellRange(1, 1, 3, 3); // don't merge anything else return GetCellRange(row, col); } }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2