Я прочитал несколько вопросов, спрашивающих, как добиться выбора DataGridRow при щелчке правой кнопкой мыши по сетке.Ответы показывают несколько разных способов достижения этого, и, по большей части, они сработали для меня, за исключением этой странной ошибки.
Похоже, что строка выбрана, но, если сначала щелкнуть левой кнопкой мыши по строке, первая строка всегда будет выбранной строкой при выборе действия.т.е. когда я щелкаю по редактированию в строке 3, данные строки 1 будут переданы в форму редактирования (если я не щелкну левой кнопкой мыши по строке 3, прежде чем щелкнуть по ней правой кнопкой мыши)
Это меню, вызываемое правой кнопкой мыши и показывающее очевидный выбор:
![enter image description here](https://i.stack.imgur.com/fp9Xb.png)
Обратите внимание, что маленький индикатор все еще находится в первой строке.
Если я закрываю контекстное меню, строка выглядит выделенной, ноэто не:
![enter image description here](https://i.stack.imgur.com/ke9bQ.png)
Если я щелкну левой кнопкой мыши по той же строке, она будет выбрана
![enter image description here](https://i.stack.imgur.com/zYo6E.png)
Вот код для события щелчка правой кнопкой мыши:
Код дизайнера:
MyDataGrid.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MyDataGridView_MouseDown);
Код формы:
private void MyDataGridView_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var hti = MyDataGrid.HitTest(e.X, e.Y);
MyDataGrid.CurrentCell = MyDataGrid.Rows[hti.RowIndex].Cells[hti.ColumnIndex];
}
}
Что яне хватает на самом деле выбрать строку?