- PR -

2つのdatagridviewのスクロール同期の方法

1
投稿者投稿内容
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-02-06 20:11
2つのdatagridviewのスクロール同期の方法についてなんですが、
スクロールが最後の所でずれてしまいます。
datagridview2を横スクロールすると、datagridview1も連動してスクロールさせたいです。
使い道はdatagridview1の合計・平均をdatagridview2に表示させたいです。
以下がコードです。

Private Sub datagridview2_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles datagridview2.Scroll
Dim r As String = datagridview2.FirstDisplayedScrollingColumnIndex
datagridview1.FirstDisplayedScrollingColumnIndex = r
End Sub

なにかいい方法がありましたら教えて下さい。
よろしくお願い致します。VB2005 XPです。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-02-07 08:10
引用:

だんくさんの書き込み (2006-02-06 20:11) より:
2つのdatagridviewのスクロール同期の方法についてなんですが、
スクロールが最後の所でずれてしまいます。
datagridview2を横スクロールすると、datagridview1も連動してスクロールさせたいです。
使い道はdatagridview1の合計・平均をdatagridview2に表示させたいです。
以下がコードです。


同じ一つのデータグリッドに表示しては駄目なんでしょうか?

引用:

Private Sub datagridview2_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles datagridview2.Scroll
Dim r As String = datagridview2.FirstDisplayedScrollingColumnIndex
datagridview1.FirstDisplayedScrollingColumnIndex = r
End Sub


何故にString?
試してはいません。ですが、本来は上記のコードで問題ないはずです。両方のDataGridViewのサイズが微妙に違っていたり、カラムの高さが微妙に違っていたりしてませんか?
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-02-08 17:42
お返事ありがとうございます。
どうも原因はdatagridviewを最後までスクロールした場合に左端にセルが中途半端に表示されてしまうために起こるみたいです。
サイズを合わせれば問題ないのでしょうが、難しいです。

>何故にString?
integerでも同じ動きでした。

何か他にスクロールを同期させる方法はないでしょうか?
よろしくお願い致します。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2006-02-08 18:01

FirstDisplayedScrollingColumnIndexプロパティの代わりにHorizontalScrollingOffsetプロパティを使うのはどうでしょう。
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-02-08 18:49
ありがとうございます。HorizontalScrollingOffsetで無事できましたありがとうございます。

先ほどなんですが、理由はよくわかりませんが
コードに変更をしたら問題なく動きそうでした。
Private Sub datagridview2_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles datagridview2.Scroll
Dim r As String = datagridview2.FirstDisplayedScrollingColumnIndex
datagridview1.FirstDisplayedScrollingColumnIndex = r
End Sub

のコードのDim r As String = datagridview2.FirstDisplayedScrollingColumnIndex
をDim r As String = datagridview2.FirstDisplayedScrollingColumnIndex +1
にへんこうです。(+1の部分です。)
1

スキルアップ/キャリアアップ(JOB@IT)