I think you can do this using MouseDown and MouseUp event handlers. Here is some code that worked for me using 2.1.0.9.
private int mouseDownRow = -1;
private int mouseDownCol = -1;
private void gridDataBoundGrid1_MouseDown(object sender, MouseEventArgs e)
{
Point pt = new Point(e.X, e.Y);;
this.gridDataBoundGrid1.PointToRowCol(pt, out mouseDownRow, out mouseDownCol);
}
private void gridDataBoundGrid1_MouseUp(object sender, MouseEventArgs e)
{
Point pt = new Point(e.X, e.Y);
int row, col;
if(this.gridDataBoundGrid1.PointToRowCol(pt, out row, out col)
&& row == mouseDownRow && col == mouseDownCol)
{
if(!this.gridDataBoundGrid1[row, col].Enabled)
{
this.gridDataBoundGrid1.CurrentCell.MoveTo(-1, -1);
this.gridDataBoundGrid1.Binder.CurrentPosition = this.gridDataBoundGrid1.Binder.RowIndexToPosition(row);
}
}
mouseDownRow = -1;
mouseDownCol = -1;
}