0

我在 WinForms 中有一个 DataGridView。我正在使用以下方式以编程方式设置选定的行:

int index = CompoundListSource.Find("ID", previousAzeotrope.Compound1.ID);
CompoundListSource.Position = index;

对于上下文:

BindingSource CompoundListSource = new BindingSource();
CompoundListSource.DataSource = [A DataTable];

选择工作正常。但是,我的 DataGridView 相当大,所以我让它通过监听它的 Scroll 事件来计算行高。当 DataGridView 滚动时,我调用:

GridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders)

由于这种调整大小,所选行通常不再在显示的行中。

这不是一个严重的问题,但它是一个麻烦。这里有人知道如何解决这个问题吗?

4

1 回答 1

2

您可以设置 DataGridViewCurrentCell以确保特定单元格在视图中:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcell.aspx

您还可以设置:

DataGridView.FirstDisplayedScrollingRowIndex = <row index>;

但是,这可能在滚动处理程序中不起作用,因为它实际上会引发滚动事件!我会让他们两个都试一试。

于 2012-08-11T23:54:22.103 回答