Щелкните правой кнопкой мыши на DataGridView, возвращающем индексы ячеек, где был сделан правильный щелчок? - PullRequest
0 голосов
/ 18 апреля 2019

Я прикрепил ContextMenuStrip к DataGridView, но действие, которое он будет выполнять, будет основано на строке, по которой пользователь щелкнул правой кнопкой мыши.

Мне удалось получить координаты по левому щелчку, но событие отсутствуетназывается CellRightClick, только CellClick или CellMouseClick ... и т. д. Тем не менее, я читал в Интернете, что можно было отслеживать положение ввода-вывода ячеек, но я бы хотел более простое решение, поскольку следующим шагом является переносимость в систему с сенсорным экраном.

РЕДАКТИРОВАТЬ: Я, к счастью, понял, что когда я щелкаю правой кнопкой мыши и всплывающее окно ContextMenu, оно также рассматривается как событие CellMouseLeave, поэтому:

Private Sub t(Sender As Object, E As DataGridViewCellEventArgs) Handles DataGridView1.CellMouseLeave

    LastRightClickedRowIndex = E.RowIndex

End Sub

может работать?Как вы думаете?Это твердое тело?

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете использовать DataGridView CellContextMenuStripNeeded событие, которое происходит, когда требуется контекстное меню ячейки, поскольку пользователь щелкает правой кнопкой мыши ячейку.

Private Sub DataGridView1_CellContextMenuStripNeeded(
    sender As Object, 
    e As System.Windows.Forms.DataGridViewCellContextMenuStripNeededEventArgs) 
    Handles DataGridView1.CellContextMenuStripNeeded

    MsgBox("You click row " & e.RowIndex & " / column " & e.ColumnIndex & "!")

End Sub
...