У меня есть ContextMenuStrip
, который используется на DataGridView
, DataGridView находится внутри панели SplitContainer
. Мои пользователи попросили, чтобы они могли щелкнуть правой кнопкой мыши по любой строке в сетке, и строка, по которой они щелкнули правой кнопкой мыши, станет выбранной строкой, и появится меню. Код, который я работал, пока я не разместил DataGridView внутри панели SplitContainer
private void DataGridView_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
// Get the row that was right-clicked on
DataGridView.HitTestInfo hitTestInfo = DataGridView.HitTest(e.X, e.Y);
if (hitTestInfo != DataGridView.HitTestInfo.Nowhere)
{
// Change the binding source position to the new row to 'select' it
BindingSource.CurrencyManager.Position = hitTestInfo.RowIndex;
}
}
}
Кажется, что все работает нормально, пока не достигнет последней строки
BindingSource.CurrencyManager.Position = hitTestInfo.RowIndex;
Позиция всегда остается на -1, даже если hitTestInfo.RowIndex
имеет другое значение, которое она пытается присвоить. Может ли это быть из-за панели SplitContainer? Если это так, какие-либо предложения о том, как это исправить?
Спасибо