在datagridview中选择(突出显示)相邻行

时间:2012-01-04 16:15:55

标签: c# datagridview

我想在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;
        }
}

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

1 个答案:

答案 0 :(得分:0)

我在DataGridView上处理* State事件并没有太多运气。我建议调查一下SelectionChanged Event