[c#] 如何让DataGridView显示所选行?



Answers

这个滚动到选定的行而不将其放在顶部。

dataGridView1.CurrentCell = dataGridView1.Rows[index].Cells[0];
Question

我需要强制DataGridView显示所选row

简而言之,我有一个textbox ,可以根据textbox键入的内容更改DGV选择。 发生这种情况时,选择将更改为匹配的row

不幸的是,如果所选row不在视图中,我必须手动向下滚动才能找到选择。 有谁知道如何强制DGV显示所选row

谢谢!




请注意,在未启用DataGridView时设置FirstDisplayedScrollingRowIndex会将列表滚动到所需的行,但滚动条不会反映其位置。 最简单的解决方案是重新启用和禁用您的DGV。

dataGridView1.Enabled = true;
dataGridView1.FirstDisplayedScrollingRowIndex = index;
dataGridView1.Enabled = false;



做这样的事情:

dataGridView1.CurrentCell = dataGridView1.Rows[index].Cells[0];

仅在第一列可见时才有效。 如果它被隐藏,你将获得一个例外。 这更安全:

var column = dataGridView1.CurrentCell != null ? dataGridView1.CurrentCell.ColumnIndex : dataGridView1.FirstDisplayedScrollingColumnIndex; dataGridView1.CurrentCell = dataGridView1.Rows[iNextHighlight].Cells[column];

如果目标行已经在屏幕上,这将重置选择而不滚动。 它还保留了当前列选择,这在您允许内联编辑的情况下很重要。




只需在选择行后放置该行:

dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.SelectedRows[0].Index;





Related