C# 在用户在DataGridView中选择另一行后维护行选择

C# 在用户在DataGridView中选择另一行后维护行选择,c#,.net,visual-studio,datagridview,C#,.net,Visual Studio,Datagridview,我已经在基于表单的应用程序中创建了DataGridView。 我使用以下代码根据某些条件预先选择了一些行: DataGridView1.Rows[i].Selected=true; 现在我有一个按钮,允许用户将焦点(记录指针)移动到下一个选定的行 当用户单击按钮时,我执行以下操作 DataGridView1.CurrentCell=DataGridView1[0,行号]; 但发生这种情况时,先前选定的行将丢失高亮显示 我还想保持上一行的突出显示(选择),但记录指针应该移动到下一个选定行。

我已经在基于表单的应用程序中创建了DataGridView。 我使用以下代码根据某些条件预先选择了一些行:

DataGridView1.Rows[i].Selected=true;

现在我有一个按钮,允许用户将焦点(记录指针)移动到下一个选定的行

当用户单击按钮时,我执行以下操作

DataGridView1.CurrentCell=DataGridView1[0,行号];

但发生这种情况时,先前选定的行将丢失高亮显示

我还想保持上一行的突出显示(选择),但记录指针应该移动到下一个选定行。
如何实现这一点。

当您将
DataGridView1.CurrentCell
设置为单个单元格(行)时,多重选择将转换为单一选择,因此取消选择所有其他行(
Selected
属性设置为
False

有多种选择可以避免这种情况:

  • 最符合逻辑的选项不依赖于
    DataGridView1.CurrentCell
    完全您可以创建自己的变量来存储当前单元格 正在编辑(您甚至可以通过 它的
    标记
    属性)
  • 另一个选项是影响当前选定行的样式(背景色),以便向用户传递它们是的印象 仍然被选中。虽然第二种选择不太可取, 就所有“相关特征”(例如,
    所选
    属性)而言 将继续运行,就好像这些行不会被选中一样

是的,我使用了DataGridView1.Rows[I].DefaultCellStyle.BackColor=Color.Blue,因此看起来它是选中的。非常感谢!