DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridのScrollBarについて

環境/言語:[Windows2000、VB.NET]
分類:[.NET]

Windowsアプリケーションを作成しています。

DataGridでScrollBarが表示されている状態で、フォーム上のボタンを押した時に
DataGridのScrollBarのValue値の値を設定しています。

しかし、ScrollBarの位置は移動するのですがDataGrid内のセルの表示は移動しません。
値の設定は

CType(DataGridName.Controls.Item(0), HScrollBar).Value = 1000

で指定しています。

セルの表示も移動する方法をどうかご伝授のほどよろしくお願い致します。
■No5068に返信(Mickさんの記事)

 Mickさん、こんにちは。深山と申します。

> DataGridでScrollBarが表示されている状態で、フォーム上のボタンを押した時に
> DataGridのScrollBarのValue値の値を設定しています。
> しかし、ScrollBarの位置は移動するのですがDataGrid内のセルの表示は移動しません。
> 値の設定は
> CType(DataGridName.Controls.Item(0), HScrollBar).Value = 1000
> で指定しています。

 こちらでも試してみました。なるほど、スクロールバーの位置だけ変わって表示領域の内容は
変更されないのですね。
 単純に Refresh してみても上手くいかないようですし、少し調べてみましたが良い方法を
見つけられませんでした。

 別の方法になりますけど、こんなのはどうでしょう?

 1. DataGrid を継承した独自のクラスを作成する
 2. そこでスクロールを行うパブリック メソッドを(値を引数に)作成する
 3. そのメソッドの中で GridHScrolled メソッドをコールする
 4. フォームではこの独自クラスを使用する
 5. スクロールしたい箇所でこのメソッドをコールする

 こんな感じでやって、期待する動作になることは確認しました。
# GridHScrolled の使い方として正しいのかどうかは定かではありませんけど(^_^;)

 もしよろしければお試し下さいませ。
深山さん、こんにちは。
さっそくの回答ありがとうございます。

さっそく試してみます。
結果はおって連絡します。
深山さん、こんにちは。
Mickです。

深山さんにご教授いただいた下記の方法で思っていた処理が実行できました。
本当にありがとうございました。

>  1. DataGrid を継承した独自のクラスを作成する
>  2. そこでスクロールを行うパブリック メソッドを(値を引数に)作成する
>  3. そのメソッドの中で GridHScrolled メソッドをコールする
>  4. フォームではこの独自クラスを使用する
>  5. スクロールしたい箇所でこのメソッドをコールする
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板