vb.net Chr KeyPress功能

时间:2016-08-08 09:23:52

标签: vb.net validation textbox ascii

在vb.net中验证文本框时,我通常使用.Chr或.ChrW函数来定义可输入的ASCII值的有效范围。今天我遇到了以前我不必做的事情,我必须以e.KeyChar <> Chr(156)格式使用此函数,但将值156替换为GBP符号的值,或者£

然而,在通过ASCII表在线查找ASCII值为156之后,我运行了代码,它不会让我输入£。有什么办法解决这个问题?有什么我想念的吗?

 Private Sub txtFVal_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtFVal.KeyPress

    If e.KeyChar <> Chr(156) AndAlso e.KeyChar <> Chr(46) AndAlso e.KeyChar <> Chr(44) AndAlso e.KeyChar = ChrW(Keys.Oemcomma) _
    AndAlso (e.KeyChar < Chr(48) OrElse e.KeyChar > Chr(57)) AndAlso e.KeyChar <> Chr(8) Then
        e.Handled = True
    End If

End Sub

1 个答案:

答案 0 :(得分:0)

不必查询其ASCII号,只需通过用c后缀字符串来指定char本身 - 在VB.NET中表示您已指定了char字面值:

If e.KeyChar <> "£"c AndAlso ...

修改

这是一个更干净的If语句,看看它是否有效:

If Char.IsNumber(e.KeyChar) = False AndAlso e.KeyChar <> "£"c _
    AndAlso e.KeyChar <> ","c AndAlso e.KeyChar <> "."c _
     AndAlso e.KeyChar <> Chr(8) Then
    e.Handled = True
End If