private void DataGridView_MouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } var hti = SelectedDataGridView.HitTest(e.X, e.Y); if (hti.RowIndex < 0 || SelectedDataGridView.Rows[hti.RowIndex].Selected) { return; } SelectedDataGridView.ClearSelection(); SelectedDataGridView.Rows[hti.RowIndex].Selected = true; }
private void InstanceContextMenu_Opening(object sender, System.ComponentModel.CancelEventArgs e) { var mousepos = MousePosition; if (!(sender is ContextMenuStrip cms)) { return; } var relMousePos = cms.PointToClient(mousepos); if (cms.ClientRectangle.Contains(relMousePos)) { var dgvRelMousePos = SelectedDataGridView.PointToClient(mousepos); var hti = SelectedDataGridView.HitTest(dgvRelMousePos.X, dgvRelMousePos.Y); if (hti.RowIndex == -1) { e.Cancel = true; } } else { e.Cancel = true; } }