[]
        
(Showing Draft Content)

C1.Win.FlexGrid.C1FlexGrid.GetMergedRange

GetMergedRange Method

GetMergedRange(int, int, bool)

Returns the merged range of cells that includes a given cell.

Declaration
public virtual CellRange GetMergedRange(int row, int col, bool clip)
Parameters
Type Name Description
int row

Row index.

int col

Column index.

bool clip

Whether the range should be clipped to the visible area of the grid.

Returns
Type Description
CellRange

A CellRange object that contains the given cell.

Remarks

Cell merging is controlled by the AllowMerging property. The GetMergedRange(int, int, bool) method allows you to determine whether a cell is merged with adjacent cells.

You can override the GetMergedRange(int, int, bool) 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.

Examples

The code below checks the current cell after a selection to see if it is part of a merged range:

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);
  }
}

The code below shows how you can override the GetMergedRange(int, int, bool) method to provide custom merging:

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);
  }
}

GetMergedRange(int, int)

Returns the merged range of cells that includes a given cell.

Declaration
public CellRange GetMergedRange(int row, int col)
Parameters
Type Name Description
int row

Row index.

int col

Column index.

Returns
Type Description
CellRange

A CellRange object that contains the given cell.

Remarks

This method returns the entire range, including invisible cells.