【问题标题】:Maintaining row selection after user selects another row in DataGridView用户在 DataGridView 中选择另一行后保持行选择
【发布时间】:2014-01-06 12:17:05
【问题描述】:

我在基于表单的应用程序中创建了一个 DataGridView。 我使用以下代码根据某些条件预先选择了一些行: DataGridView1.Rows[i].Selected = true;

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

当用户单击按钮时,我执行以下操作 DataGridView1.CurrentCell = DataGridView1[0,row_number];

但是当这种情况发生时,先前选择的行会失去突出显示。

我也想保持前一行的突出显示(选择),但记录指针应该移动到下一个选定的行。 我怎样才能做到这一点。

【问题讨论】:

    标签: c# .net visual-studio datagridview


    【解决方案1】:

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

    有多种方法可以避免这种情况:

    • 最合乎逻辑的选择是不依赖DataGridView1.CurrentCell 一点也不。您可以创建自己的变量来存储当前单元格 正在编辑(您甚至可以将其存储在 DataGridView 本身中,通过 其Tag 属性)。
    • 另一个选项是影响到目前为止所选行的样式(背景颜色),以向用户传达他们是 仍然被选中。虽然第二个选项不太推荐, 就所有“相关功能”而言(例如,Selected 属性) 将继续表现得好像这些行不会被选中。

    【讨论】:

    • 是的,我使用了 DataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Blue ,所以看起来它被选中了。非常感谢!
    猜你喜欢
    • 2016-10-08
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    相关资源
    最近更新 更多