Vb.net 将用户输入的十进制变量计算为1到24的范围或错误

Vb.net 将用户输入的十进制变量计算为1到24的范围或错误,vb.net,Vb.net,作为一名VB新手,我试图将我的想法总结为验证文本框范围为1到24的用户输入。我知道这可能是一个简单的表达式,但我的想法是Java表达式,而不是VisualBasic Private Sub HoursAppUsed_TextChanged(sender As Object, e As TextChangedEventArgs) Handles HoursAppUsed.TextChanged 'must check if string is numeric/integer or not'

作为一名VB新手,我试图将我的想法总结为验证文本框范围为1到24的用户输入。我知道这可能是一个简单的表达式,但我的想法是Java表达式,而不是VisualBasic

Private Sub HoursAppUsed_TextChanged(sender As Object, e As TextChangedEventArgs) Handles HoursAppUsed.TextChanged
    'must check if string is numeric/integer or not'

    Dim hoursEntered As String = HoursAppUsed.Text
    'And hoursEntered > 0 Or hoursEntered < 25  ???? '

    If IsNumeric(hoursEntered) Then
        Dim decFromString1 As Decimal = Decimal.Parse(hoursEntered)
        hoursEntered = "Value: " + hoursEntered
        LabelFour.Content = hoursEntered
    Else
        LabelFour.Content = "Value is not Numeric!"
    End If
    'hoursEntered = "Hours Entered: " + hoursEntered'
    'LabelFour.Content = hoursEntered'

End Sub

这可以通过设置最小和最大属性,使用NumericUpDown控件轻松实现

如果您仍想使用文本框,则以下操作应起作用:

Dim hoursEntered As String
Dim decFromString1 As Decimal

If Decimal.TryParse(hoursEntered, decFromString1) AndAlso
   decFromString1 >= 1 AndAlso
   decFromString1 <= 24 Then

    hoursEntered = "Value: " + hoursEntered
    LabelFour.Content = hoursEntered
Else
    LabelFour.Content = "Value is not Numeric!"
End If

这很有效,它帮助我查看所需表达式的顺序。非常感谢。不客气。我现在意识到您似乎在使用WPF,而不是WinForms,因为WinForms标签上没有内容属性。因此,也许这个问题是你感兴趣的:是的,这也有助于我的下一个解决方案。再次感谢你!我可以使用范围从1到24的ItemBox选项将其转换为十进制,但要求允许用户输入使用对象的小时数。