在datagridview中选择(高亮显示)相邻行

本文关键字:显示 高亮 datagridview 选择 | 更新日期: 2023-09-27 18:19:22

我想在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事件中调用,并且行被正确选择。但是当我使用上/下键在网格视图中导航时,选择就丢失了。我试图使用rowstatechange事件,但随后我遇到了无限循环,即使我删除了事件订阅,像这样:

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;
        }
}

如何在使用上/下键导航时进行选择?

在datagridview中选择(高亮显示)相邻行

我在处理DataGridView上的*State事件时运气不太好。我建议查看SelectionChanged事件