我有一个ContextMenuStrip
用于DataGridView
,DataGridView位于SplitContainer
面板的内部。我的用户请求他们能够右键单击网格中的任何行,然后右键单击的行将成为选定的行,并出现菜单。那我的代码一直在努力,直到我把SplitContainer的面板更新CurrencyManager位置
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;
}
}
}
一切内部在DataGridView似乎直到它到达最后一行
BindingSource.CurrencyManager.Position = hitTestInfo.RowIndex;
中的位置始终保持在工作正常-1,即使hitTestInfo.RowIndex
有一个不同的值,它正试图分配。这可能是因为SplitContainer面板?如果是这样,关于如何解决它的任何建议?
感谢