2009-12-02 26 views
0

我试图保持用户输入到我们的应用程序尽可能干净。我试图做到这一点的方法之一是不允许的领域不正确的数据类型检查用户按键创建警告

我发现并实现下面的代码(预期数值时不允许字母字符):

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

而不是e.KeyChar.IsDigit,请使用Char.IsDigitIsControl同样的事情。当访问像IsDigit这样的静态(共享)方法时,您可以直接通过类来访问它,而不是通过特定实例来访问它:无论如何,实例(本例中为e.KeyChar)都将被忽略,这就是警告的内容。

+0

真棒没有更多的警告,我仍然有相同的功能。 – Sean 2009-12-02 16:07:35