I think you can do this by:
1) Adding member to your form:
GridRangeInfoList rangeList;
2) in FormLoad:
this.grid.ActivateCurrentCellBehavior = GridCellActivateAction.None;
rangeList = this.grid.Selections.GetSelectedRows(false, true).Clone();
3) Handle the grid''s MouseUp eevnt and save the selections.
private void grid_MouseUp(object sender, MouseEventArgs e)
{
rangeList = this.grid.Selections.GetSelectedRows(true, false).Clone();
}
4) handle the grid''s MouseDown and start editing if the cell is in the saved selections.
private void grid_MouseDown(object sender, MouseEventArgs e)
{
int row, col;
if(rangeList.Count > 0 &&
this.grid.PointToRowCol(new Point(e.X, e.Y), out row, out col, -1))
{
if(rangeList.AnyRangeContains(GridRangeInfo.Cell(row, col)))
{
this.grid.CurrentCell.BeginEdit();
}
}
}