1

自動スクロールを備えたパネルがあり、マウスのスクロール行数を変更する必要があります

私はこれを意味します:

(スペイン語でマウスのプロパティ、申し訳ありません)

ここに画像の説明を入力

しかし、SOではなく、私のパネル、obviusのために、私のプログラムでそれを変更します!

PS: たとえば、Winamp メディア プレーヤーにはそのためのオプションがあります。

どこにも情報がありません、助けてください。

アップデート

私のスクロールバーは「AutoScroll」プロパティを持つパネルです

私のイベントはこれです:

    Private Sub Panel1_MouseScroll(sender As Object, e As MouseEventArgs) Handles Panel1.MouseWheel

    Panel1.Invalidate()

    End Sub

これは私のパネルの内容です:

  ' Checkbox drawing
Public Sub updatecheckboxes()
    ' delete the old checkboxes
    Panel1.Controls.Clear()
    ' create the new checkboxes
    Dim filesystem = CreateObject("Scripting.FileSystemObject")
    Dim ThisDir = filesystem.GetFolder(My.Settings.folderpath)
    Dim i As Int32 = 0
    Dim pos As Int32 = 10
    For Each folder In ThisDir.Subfolders
        Array.Resize(mcheck, i + 1)
        mcheck(i) = New CheckBox
        With mcheck(i)
            .AutoSize = True
            .Location = New Point(10, pos)
            .Name = "CheckBox" & i + 1
            .Text = folder.Name
        End With
        Me.Panel1.Controls.Add(mcheck(i))
        AddHandler mcheck(i).CheckedChanged, AddressOf LlamadaCheckBox
        i += 1
        pos += 20
    Next

End Sub

ここに画像の説明を入力

パネル内の歪んだ効果でスクロールする行数を変えたいのですが、WindowsのSOプロパティのイメージのように「1スクロールページ」や「一度に10スクロール」を使えば直せます!

4

3 に答える 3

2

MouseEventArgsオブジェクトには、マウス ホイールがスクロールされた量を決定するプロパティがありますDelta。さらに、ありますSystemInformation.MouseWheelScrollLinesWHEEL_DELTA = 120マウス ホイール ティックごとに追加されるデルタを反映する、と呼ばれる現在の定数があります。

したがって、適切な定義は次のとおりです。

Dim numberOfTextLinesToMove As Integer = CInt(e.Delta * SystemInformation.MouseWheelScrollLines / 120)

ソース: MSDN の Control.MouseWheel イベント

于 2012-11-23T21:28:30.173 に答える