鼠标滚动滚动3次

当我在VB.Net“ NumericUpAndDown”中滚动鼠标滚轮时,它将滚动3倍的值,我只想滚动1次...

经过一番搜索,我发现了这个

Public Sub RolagemMouse(sender As Object,e As MouseEventArgs)
    ' Periocidade.MouseWheel,Parcelas_UP_DWN.MouseWheel,TB_Valor.MouseWheel
    Try
        If e.Delta > 0 Then
            sender.Value += sender.increment
        Else
            sender.Value -= sender.increment
        End If
    Catch
    End Try
    CType(e,HandledmouseEventArgs).Handled = True

End Sub

它解决了我的问题,但是我的表单中有很多NumericUpAndDown,然后在添加的FormLoad事件中我有了另一个主意

For Each grupo As GroupBox In Controls.OfType(Of GroupBox)
        For Each objeto As NumericUpDown In grupo.Controls.OfType(Of NumericUpDown)
            AddHandler objeto.MouseWheel,AddressOf RolagemMouse
        Next
    Next

但这是不切实际的,我必须以各种形式进行说明,有没有更好的方法呢?

a1119850405 回答:鼠标滚动滚动3次

这是一个继承自NumericUpDown的简单自定义控件,该控件覆盖OnMouseWheel以应用定义的Increment值,而不是由默认值SystemInformation.MouseWheelScrollLines(通常为=3)应用UpDownBase类。

请注意,您的代码当前添加到Value的增量中,没有计算MinimumMaximum属性,因此您在递增或递减{{1 }}属性,因为在某个时候Value会超出可接受的范围。

Value在这里是有原因的,即使它看起来是空的。如果您决定使用它,请不要切断它。
在Visual Studio中,您可以使用“搜索和替换”功能将所有现有的NumericUpdown控件替换为自定义控件(除非重新定义,否则可以使用 Control + H 调用)。

Public Sub New()
本文链接:https://www.f2er.com/3078687.html

大家都在问