Vb.net 处理+++;,-,-按钮→;获取按钮无论如何都会产生的下一个值

Vb.net 处理+++;,-,-按钮→;获取按钮无论如何都会产生的下一个值,vb.net,Vb.net,标有一个加号的按钮和一个减号的按钮将文本框中的值增加/减少0.1 标有2个加号的按钮和标有2个减号的按钮将文本框中的值增加/减少1.0 标有3个加号的按钮和标有3个减号的按钮将文本框中的值增加/减少9.0 但是 如果文本框中存在扭曲的值,则该值应跳转到下一个更高的值,该+按钮可以并且无论如何都会产生该值。示例:1007.99变为1008 如果文本框中存在扭曲的值,则该值应跳转到该++按钮可能产生的下一个更高的值。示例:1007.99变为1009 如果文本框中存在扭曲的值,则该值应跳转到该++按钮

标有一个加号的按钮和一个减号的按钮将文本框中的值增加/减少0.1

标有2个加号的按钮和标有2个减号的按钮将文本框中的值增加/减少1.0

标有3个加号的按钮和标有3个减号的按钮将文本框中的值增加/减少9.0

但是

如果文本框中存在扭曲的值,则该值应跳转到下一个更高的值,该
+
按钮可以并且无论如何都会产生该值。示例:1007.99变为1008

如果文本框中存在扭曲的值,则该值应跳转到该
++
按钮可能产生的下一个更高的值。示例:1007.99变为1009

如果文本框中存在扭曲的值,则该值应跳转到该
++
按钮可能产生的下一个更高的值。示例:1007.99变为1017

使用
++
按钮,1008.40的值变为1009。 使用
--
按钮,1008.40的值变为1008

这同样适用于标有减号的按钮

我怎样才能开始呢

==================================================

编辑


我用这个代码试过了。我唯一还有的问题是
+
按钮和
-
按钮。车还开着。1007.99-无论我点击的频率有多高,都不会低于1007.9,也不会超过1008.1。对于1007.9到1008之间的取整和减去0.1,这似乎是一个不合适的解决方案。我无法说明逻辑应该如何工作,因为在您的一些示例中,我无法理解取整规则

不过,我可以提供另一种方法来简化代码。您可以让按钮按下的事件处理程序简单地调用一个固定的子例程,其中您的逻辑可以位于一个位置,这更易于编辑和管理:

Private Sub SetValue(delta As Double)

    Dim value As Double
    If Not Double.TryParse(TextBox2.Text, System.Globalization.NumberStyles.Float, Deu, value) Then
        Throw New ArgumentException($"Current value {TextBox2.Text} is invalid.")
    End If

    Dim newValue = Math.Round(value, 1) + delta
    TextBox2.Text = newValue.ToString(Deu)

End Sub


Private Sub Button_3Minus_Click(sender As Object, e As EventArgs) Handles Button_3Minus.Click
    SetValue(-9.0)
End Sub

Private Sub Button_2Minus_Click(sender As Object, e As EventArgs) Handles Button_2Minus.Click
    SetValue(-1.0)
End Sub

Private Sub Button_1Minus_Click(sender As Object, e As EventArgs) Handles Button_1Minus.Click
    SetValue(-0.1)
End Sub

Private Sub Button_1Plus_Click(sender As Object, e As EventArgs) Handles Button_1Plus.Click
    SetValue(0.1)
End Sub

Private Sub Button_2Plus_Click(sender As Object, e As EventArgs) Handles Button_2Plus.Click
    SetValue(1.0)
End Sub

Private Sub Button_3Plus_Click(sender As Object, e As EventArgs) Handles Button_3Plus.Click
    SetValue(9.0)
End Sub

你能发布你迄今为止尝试过的任何代码吗?我编辑了我的问题@ParrishHusband非常感谢!这样效果更好。