繁体   English   中英

使用“ row.Selected = true”会更改外观,但不会更改CurrentRow索引

[英]Using “row.Selected = true” changes appearence but not CurrentRow index

我有以下代码片段,它们在网格中搜索所需的记录并突出显示该记录:

foreach(DataGridViewRow row in grdActiveJobs.Rows)
{
    if(row.Cells["Part Number"].Value.ToString() == lvPartNum && row.Cells["Serial Number"].Value.ToString() == lvSerialNum)
        row.Selected = true;
}

上面的代码按预期工作-突出显示该行,但是,如果我在currentrow.index上进行检查

 if (grdActiveJobs.CurrentRow.Index == 0)
 {
     // Do things
 }

即使前一片段中突出显示的行的索引为5,也会将当前索引显示为0。

我的问题是,设置“ row.selected = true”时,如何确保网格的当前行索引设置正确且未被检测为0?

先感谢您。

经过一番挖掘,我找到了以下解释:

GridName.CurrentRow.Index-这将返回系统定义的当前单元格的索引,该索引不一定总是与用户选择的单元格相同。 例如,如果您有一个网格,它允许您选择多个行,如果选择了10个,然后取消选择了其中一个行,则currentrow.index将是您单击的最后一行的索引-现在未选择一。

要返回当前选定行的索引(向用户突出显示),您需要使用GridName.SelectedRows [0] .Index ,如果只选择了一行,则将返回选定行的索引。 (如果启用了多选功能,则将前一个代码段中的[0]递增显然会返回第二个选定行的索引)。

我的代码现在显示为:

if (grdActiveJobs.SelectedRows[0].Index == 0)
{
    // Do stuff correctly
}

如果您可以改善我的解释性注释,并告诉我:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM