I have a WinForms application with datagrids in several places. 

On one of the datagrids I have set up an event for a Right Click as follows:

```
private void dataBundles_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    try
    {
        if (e.Button == MouseButtons.Right)
        {
            var cell = dataBundles.HitTest(e.X, e.Y);
            int cellRow = cell.RowIndex;
            DataTable table = (DataTable)dataBundles.DataSource;
            string bundleID = table.Rows[cellRow]["BundleID"].ToString();
            dataBundles.Rows[cellRow].DefaultCellStyle.BackColor = Color.Red;
            if (MessageBox.Show("Are you sure you want to delete Bundle ID '" + bundleID + "'?",
                                "Confirm Delete Bundle", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                int intBundleID = Int32.Parse(bundleID);
                cBundle bundle = new cBundle(intBundleID);
                bundle.Delete();
                PopulateDocumentsTab();                        
            }
            else
            {
                dataBundles.Rows[cellRow].DefaultCellStyle.BackColor = Color.White;
            }
        }
    }
    catch (Exception eX)
    {
        string eM = "Error occurred when right clicking the Bundles datagrid";
        aError err = new aError(eX, eM);
        MessageBox.Show(eX.Message, eM);
    }
}

```

However for some reason, no matter where I right click on this datagrid, the rowindex always returns a -1 which of course is 'off' the grid and so results in an error.

I can't see what I have done wrong as I have used identical code for right click events on other datagrids within the same application and they all work fine.

I'm sure whatever I am missing it is going to be something simple, but I've been starring at this code for a good while now.

Can someone put me out of my misery?