私はDataGridView
フォームを持っています。行を右クリックすると、コンテキスト メニューを開くプログラムが必要です。このコンテキスト メニューを使用して、 のデータを変更できるようにしたいと考えていますDataGridView
。
右クリックした場所を表示するコンテキスト メニューを取得しましたが、ここからどこに移動すればよいかわかりません。(たとえば) 行全体を削除するので、その行のインデックスを取得し、それを選択済みに設定する必要があります。イベントでこれを試しましたcell_clicked
が、マウスの左ボタンまたは右ボタンが押されたかどうかを判断できません。しかし、mouse_click
イベントでは行インデックスを取得できません。
これが私のコードです:
public Form()
{
ContextMenu contextMenu = new ContextMenu();
//Fill Context Menu
MenuItem delete = new MenuItem("Delete");
contextMenu.MenuItems.Add(delete);
}
private void grdSchedules_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
contextMenu.Show(grdSchedules, new Point(e.Y, e.Y));
//Get rowindex here and select row
}
}
私はこのように試しました:
private void grdSchedules_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right) //e.Button does not work here
{
contextMenu.Show(grdSchedules, new Point(e.Y, e.Y));
}
}