NumericUpDown mit rechter Maustaste bedienen

  • VB.NET

Es gibt 40 Antworten in diesem Thema. Der letzte Beitrag () ist von Humax.

    Ich habe den Code von @Gonger96 noch dahin gehend angepasst, dass auch mit dem Mausrad ein festgelegter Wert verringert / erhöht werden kann.
    SO passt das für mich jetzt richtig gut, danke an alle

    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Public Class CustomUpDown
    3. Inherits NumericUpDown
    4. <Category("Data")>
    5. Public Property RightclickIncrement As Decimal = 10
    6. <Category("Data")>
    7. Public Property MouseWheelIncrement As Decimal = 5
    8. Private spinner As Control = Nothing
    9. Protected Overrides Sub OnHandleCreated(ByVal e As EventArgs)
    10. MyBase.OnHandleCreated(e)
    11. spinner = Controls(0)
    12. AddHandler spinner.MouseClick, AddressOf Spin_MouseClick
    13. End Sub
    14. Protected Overrides Sub OnMouseWheel(e As MouseEventArgs)
    15. If e.Delta > 0 Then
    16. MyBase.Value = Math.Min(MyBase.Maximum, MyBase.Value + MouseWheelIncrement)
    17. Else
    18. MyBase.Value = Math.Max(MyBase.Minimum, MyBase.Value - MouseWheelIncrement)
    19. End If
    20. End Sub
    21. Private Sub Spin_MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs)
    22. If e.Button <> MouseButtons.Right Then Return
    23. Dim half_height As Integer = spinner.Height \ 2
    24. If e.Y < half_height Then
    25. Value = Math.Min(Maximum, Value + RightclickIncrement)
    26. Else
    27. Value = Math.Max(Minimum, Value - RightclickIncrement)
    28. End If
    29. End Sub
    30. End Class