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

DataGridView を設定してCurrentCell、特定のセルが確実に表示されるようにすることができます。

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

以下を設定することもできます。

DataGridView.FirstDisplayedScrollingRowIndex = <row index>;

ただし、これは実際にはスクロール イベント自体を発生させるため、スクロール ハンドラでは機能しない可能性があります。両方試してみます。

于 2012-08-11T23:54:22.103 に答える