I need to select a row in a DataGridView with right click before a ContextMenu is shown because the ContextMenu is row-dependent.

I've tried this:

 if (e.Button == MouseButtons.Right)
 {
     var hti = dataGrid.HitTest(e.X, e.Y);
     dataGrid.ClearSelection();
     dataGrid.Rows[hti.RowIndex].Selected = true;
 }

or:

private void dataGrid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        dataGrid.Rows[e.RowIndex].Selected = true;
        dataGrid.Focus();
    }
}

This works but when I try to read dataGrid.Rows[CurrentRow.Index] I see only the row selected with left click and not those selected with right click.

Edit
Report