public SelectedState GetSelectedState(CellRange rng) { CellRange selection = _grid.Selection; if (rng.Contains(selection.Row, selection.Column)) { return SelectedState.Cursor; } if (_grid.Rows.IsSelected(rng.Row) || _grid.Columns.IsSelected(rng.Column)) { return SelectedState.Selected; } selection = AdjustSelection(selection, true); if (rng.Row < 0 && selection.ContainsColumn(rng.Column) || rng.Column < 0 && selection.ContainsRow(rng.Row)) { return SelectedState.Selected; } if (_grid.SelectionMode == SelectionMode.ListBox) { return SelectedState.None; } if (!rng.Intersects(selection)) { return SelectedState.None; } return SelectedState.Selected; }
public void RemoveMergedRange(CellRange rng) { for (int i = 0; i < _mergedRanges.Count; i++) { if (rng.Intersects(_mergedRanges[i])) { _mergedRanges.RemoveAt(i); i--; } } _grid.Invalidate(); }