記事内に広告が含まれています。

Windows Forms:DataGridView CurrentCell を利用した動的スクロール(サンプルあり)

DataGridView の CurrentCell プロパティに任意のセルを指定することで、そのセルを表示領域に持ってくることができます。つまり、動的なスクロールを行うことができます。

実装コード

例えば、下記コードでは、 CurrentCell プロパティに 9 列 26 行目のセルを指定することで、表示領域外にあるセルを表示領域に持ってきます。特定列を先頭列に、特定行を先頭行にスクロールする制御とはなりませんが、エンドユーザーの最低限の利便性を確保する意味では、下記コードで対処できる局面もあると思います。

// DataGridView のデータバインドと、データの読み込みや描画が完了後に発生するイベント
private void DataGridView1_DataBindingComplete(object? sender, DataGridViewBindingCompleteEventArgs e)
{
    this.dataGridView1.CurrentCell = this.dataGridView1[8, 25];
}

実行結果

CurrentCell のセル位置に応じて、縦スクロール、横スクロールが行われていることが分かります。ただし、CurrentCell が先頭行・先頭列にはならず、表示領域に入るようなスクロール制御である点に注意ください。

サンプルアプリケーション

サンプルアプリケーションは、.NET 8 で作成されています。

-Windows Forms