Visual Studio 2005。
我将部分源代码转换为C#。
但是,当我在下面的代码片段中时,我注意到我没有IsNumber方法。
为什么缺少IsNumber?我想使用它,以便我可以强制用户只输入数字。
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar.IsNumber(e.KeyChar) = False Then
e.Handled = True
End If
End Sub
非常感谢任何建议,
答案 0 :(得分:7)
使用静态char.IsNumber()
:
char.IsNumber(e.KeyChar);
顺便说一下,我想你想用char.IsDigit()
代替。这来自MSDN网站:
IsNumber()
确定Char是否属于任何数字Unicode类别。这与IsDigit()
形成对比,后者确定Char是否是基数为10的数字。
换句话说,IsNumber()
对于非西方数字(如六(中文'6'))也会返回true。
答案 1 :(得分:3)
允许您在实例变量上调用共享成员时,C#更严格。
你的原始代码在VB中给我一个警告。
警告1通过实例访问共享成员,常量成员,枚举成员或嵌套类型;不会评估合格表达式。
在C#中 - 它是不允许的。您使用char.IsNumber
的解决方案是可行的方法;并且该代码在任何一种语言中的工作方式都相同。
public class Example1
{
public static int Test() { return 0; }
public Example1()
{
this.Test(); // This doesn't work
Example1.Test(); // This does
}
}
答案 2 :(得分:0)
解决。
使用以下内容:
if (char.IsNumber(e.KeyChar) == false)
{
e.Handled = true;
}
答案 3 :(得分:0)
我们通常使用developer fusion将代码从vb.net转换为c#,反之亦然。 你也可以尝试一下。