2017-09-14 80 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