3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net)DataGridViewで右クリックしたときに行選択したい

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;

}

 

}

参考:

DataGridView で右クリックして行を選択