DataGridViewでコンテキストメニューを割り当てた時、右クリックをしても、クリックしたセルに対してイベント走るのではなく、その時に選択されているセルに対してイベントが走ってしまいます。
Excelみたいに、右クリックしたら、マウスポインタの位置の行が選択されて、その後コンテキストメニューが出るようにしたい場合、以下のようにMouseDownイベントで行選択してしまえばいいようです。
参考先そのままですがコードを載せておきます。(C#)
///
/// セルでマウスダウンイベントあった時
///
///
///
private void dgvParent_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
dgvParent.ClearSelection();
dgvParent.Rows[e.RowIndex].Selected = true;
}
}
参考: