No.1ベストアンサー
- 回答日時:
お世話になります。
勉強不足でオートスクロール機能というのが
どういうものを指すのかわからないのですが、
マウスの動きに追随してセルやスクロールする、という意味であっていれば以下の実装で出来ました。
結構めんどくさかったし、ソースももうちょっときれいに書き直せると思います。
Private Sub DataGridView1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseMove
Dim hInfo As DataGridView.HitTestInfo = _
Me.DataGridView1.HitTest(e.X, e.Y)
Debug.WriteLine("hInfo:" & hInfo.ToString())
Dim nextRowIndex As Integer = 0
Dim nextColumnIndex As Integer = 0
If hInfo.Type = DataGridViewHitTestType.Cell Then
nextRowIndex = hInfo.RowIndex
nextColumnIndex = hInfo.ColumnIndex
ElseIf hInfo.Type = DataGridViewHitTestType.ColumnHeader OrElse _
hInfo.Type = DataGridViewHitTestType.VerticalScrollBar Then
If hInfo.RowIndex > Me.DataGridView1.CurrentCell.RowIndex Then
nextRowIndex = Me.DataGridView1.CurrentCell.RowIndex + 1
ElseIf Me.DataGridView1.CurrentCell.RowIndex >= 0 Then
nextRowIndex = Me.DataGridView1.CurrentCell.RowIndex - 1
End If
nextColumnIndex = hInfo.ColumnIndex
ElseIf hInfo.Type = DataGridViewHitTestType.RowHeader OrElse _
hInfo.Type = DataGridViewHitTestType.HorizontalScrollBar Then
If hInfo.ColumnIndex > Me.DataGridView1.CurrentCell.ColumnIndex Then
nextColumnIndex = Me.DataGridView1.CurrentCell.ColumnIndex + 1
ElseIf Me.DataGridView1.CurrentCell.ColumnIndex >= 0 Then
nextColumnIndex = Me.DataGridView1.CurrentCell.ColumnIndex - 1
End If
nextRowIndex = hInfo.RowIndex
Else
Exit Sub
End If
If nextRowIndex < 0 Then nextRowIndex = 0
If nextRowIndex > Me.DataGridView1.RowCount - 1 Then nextRowIndex = Me.DataGridView1.RowCount - 1
If nextColumnIndex < 0 Then nextColumnIndex = 0
If nextColumnIndex > Me.DataGridView1.ColumnCount - 1 Then nextColumnIndex = Me.DataGridView1.ColumnCount - 1
Me.DataGridView1.CurrentCell = Me.DataGridView1.Rows(nextRowIndex).Cells(nextColumnIndex)
Me.DataGridView1.FirstDisplayedCell = Me.DataGridView1.CurrentCell
End Sub
早速のご回答、ありがとうございます。
ユニバーサルスクロール機能というのは、スクロールマウスのスクロール部分を押すと、カーソルの形が変わり、マウスを動かした方へスクロールするという機能です。
機能としては、スクロール部分をクリックした後、記述していただいたようにマウスの動きに合わせて、画面がスクロールすればよいのですが、申し訳ないのですが、私が思ったような動きではないです。
短時間の間に、テストまでしていただきまして、ありがとうございます。
心から感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- InternetExplorer(IE) Edge でマウスの真ん中のボタン(ミドルボタン)を押すと、スクロールするのを無効にしたい 2 2023/06/11 05:05
- マウス・キーボード Macのスクロールについて 2 2022/06/28 11:29
- Windows 10 画面上の[タスクバー]の位置の変更 1 2022/06/12 21:10
- Windows 95・98 Windows11の設定画面がスクロールできません。 2 2023/07/26 05:16
- マウス・キーボード ノートパソコンでマウスを使っていたら急にスクロールでしなくなりました。別のマウスを使っても同じですね 5 2022/08/09 05:28
- その他(OS) 職場で使ってるプログラムなんですが、 2 2023/03/20 16:31
- マウス・キーボード マウスのないパソコン 9 2022/03/30 10:53
- マウス・キーボード ノートパソコンマウスのスクロールができません、どのマウスを繋いでも同じですマウスをスクロールすると横 3 2022/09/16 15:15
- Chrome(クローム) chromeの設定でホイールを回した際の移動量とホイールクリックした際の自動スクロール 2 2022/12/19 17:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
リストビューをスクロールさせ...
-
Excelで一部分だけを常に表示さ...
-
PDFを(htmlのように)無限に縦...
-
ExcelVBAで他のアプリをスクロ...
-
グループボックス内のコンボボ...
-
Excelの質問で票の途中に...
-
vb,netでtextboxの文字を右から...
-
子要素のスクロールが親要素に...
-
jscrollpaneで1番上を表示する
-
2ファイルの同時スクロール
-
WordPressの使い方について
-
リストビューの水平スクロール...
-
location.hrefはブラウザごとに...
-
ワードでHP作成中ですが流れ...
-
文章の自動スクロール
-
スライド式ホームページの不具合
-
新着情報などをスクロールしな...
-
グランドピアノの中身を真上か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
Excelで1.2行目だけ固定して...
-
Excelの質問で票の途中に...
-
Excelで一部分だけを常に表示さ...
-
大きい表へのスクロールバーの...
-
ページ訪問時にiframe内を自動...
-
Visual Basicから Spreadのスク...
-
vb,netでtextboxの文字を右から...
-
webページで横方向にアンカーを...
-
リストビューの表示開始行変更
-
スクロール位置を中央にしたい
-
マウスオーバー→ホイール回転で...
-
VBE画面の縦のスクロールバ...
-
IFRAMEでscrolling="yes|no"の...
-
マウスでコロコロしたいんですが…
-
文章の自動スクロール
-
アコーディオンで開かれたパネ...
おすすめ情報