2017-09-14 76 views
0
if (char.IsDigit(e.KeyChar)) 
{       
    if (IsCharFullWidthDigits(e.KeyChar)) 
    { 
     e.KeyChar = Strings.Chr(Strings.Asc(e.KeyChar) + 23680); 
    } 
} 

转换为相应的正常`0`全宽位`0`如果用户输入了全角数字,如,如何自动转换为相应的正常09?在VB.NET中,我使用Strings.ChrStrings.Asc,但我在C#中看不到相应的东西。我怎样才能做到这一点?通过`9`通过`9`在C#

+0

的可能的复制[什么是VB的升序()和CHR()在C#中的功能相当于?](https://stackoverflow.com/questions/721201/whats-the - 等效的vbs-asc-and-chr-functions-in-c) –

+0

我检查了页面。但是一些代码里面只有很少的选票,并且不能保证说代码是正确的。我要去测试它们。 – qtg

+0

我编辑标题以反映代码。感谢Keith。 – qtg

回答

2

试试这个:

int diff = (int)'0' - (int)'0'; 
if (char.IsDigit(e.KeyChar) && IsCharFullWidthDigits(e.KeyChar)) 
{ 
     e.KeyChar = (char)(((int)e.KeyChar) - diff); 
} 
+0

它回答了我对代码的问题。对于我的情况,我们可以直接使用int/char来强制转换。 – qtg