我试图尽可能保持用户对我们的应用程序的输入。我尝试这样做的一种方法是不允许在字段中使用不正确的数据类型(在期望数值时不允许使用字母字符)
我找到并实现了以下代码:
Private Sub txtSocial_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSocial.KeyPress
Dim UserKeyPress As Char = e.KeyChar
Dim isKey As Boolean = e.KeyChar.IsDigit(UserKeyPress)
Dim isCont As Boolean = e.KeyChar.IsControl(UserKeyPress)
If Not isKey And Not isCont Then
e.Handled = True
End If
代码按预期工作,但Visual Studio会抛出此警告:
共享成员的访问,常量 成员,枚举成员或嵌套类型 通过一个实例;排位赛 表达式不会被评估。
我不反对警告,但我想知道我是否忽略了警告并继续前进,或者是否有更好的方法来实现我的目标?
答案 0 :(得分:0)
而不是e.KeyChar.IsDigit
,请使用Char.IsDigit
。 IsControl
也是如此。当访问像IsDigit这样的静态(共享)方法时,您可以通过类而不是特定实例直接访问它:无论如何,实例(在这种情况下为e.KeyChar
)都会被忽略,这就是警告的内容。