我想在datagridview中选择一组行。有一个叫做
的专用简单函数void SelectAdjacentRows(int i)
{
if (i == -1)
return;
dgw.Rows[i].Selected = true;
if (i < dgw.Rows.Count - 1)
dgw.Rows[i + 1].Selected = true;
}
从CellClick事件调用它并正确选择行。但是当我使用向上/向下键在网格视图中导航时,选择将丢失。我尝试使用RowStateChanged事件,但后来我遇到了无限循环,即使我删除了这样的事件订阅:
private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
if (e.StateChanged == DataGridViewElementStates.Selected)
{
dgw.RowStateChanged -= dataGridView1_RowStateChanged;
SelectAdjacentRows(e.Row.Index);
dgw.RowStateChanged += dataGridView1_RowStateChanged;
}
}
使用向上/向下键导航时如何进行选择?