设置DataGridView的选定行的问题:与AutoResizeRows冲突

时间:2012-08-11 23:38:50

标签: c# winforms datagridview

我在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)

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

这不是一个严重的问题,但这是一个令人讨厌的问题。这里有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以设置DataGridView的CurrentCell以确保查看特定的单元格:

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

您也可以设置:

DataGridView.FirstDisplayedScrollingRowIndex = <row index>;

但是,这可能不适用于滚动处理程序,因为它实际上会引发滚动事件本身!我试试看。