.net Net检查标点符号

.net Net检查标点符号,.net,vb.net,events,keypress,.net,Vb.net,Events,Keypress,我有一个按键事件,将输入限制为仅数字,如下所示: Private Sub txtWeight_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtWeight.KeyPress If Not Char.IsNumber(e.KeyChar) Then e.Handled = True End If End Sub 但我也想添加句点的可能性,因此我尝试将代码更改为: Private Sub

我有一个按键事件,将输入限制为仅数字,如下所示:

Private Sub txtWeight_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtWeight.KeyPress

    If Not Char.IsNumber(e.KeyChar) Then
        e.Handled = True
    End If

End Sub
但我也想添加句点的可能性,因此我尝试将代码更改为:

Private Sub txtWeight_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtWeight.KeyPress

    If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsPunctuation(e.KeyChar) Then
        e.Handled = True
    End If

End Sub
但正如您所知,该程序允许我键入每个标点符号,我只想将其限制为“.”如何检查键入的标点符号?

e.Handled=e.KeyChar“.”c并且也不允许Char.IsNumber(e.KeyChar)

谢谢,我觉得没那么容易,我把它改成了:“如果不是Char.IsNumber(e.KeyChar)也不是e.KeyChar=“”也不是Char.IsControl(e.KeyChar)然后“就可以了。”perfectly@NomeCognome,当有一个
操作符但是,如果你要这样做,那么这仍然是一种糟糕的形式,因为你应该重构到
如果不是(Char.IsNumber(e.KeyChar)或lse e e.KeyChar=“.”OrElse Char.IsControl(e.KeyChar)),那么