我们有一个.NET 2.0 Windows窗体应用程序,其中包含许多自定义控件。几年前,我们将应用程序全球化,因此用户可以看到适合特定文化的符号和翻译。文化特定处理Windows窗体中的数字小键盘小数点键
法国加拿大客户要求我们更改我们的应用程序处理数字小数点键的方式。当用户按下此键时,我们的数字控件没有做任何事情。
我将我的Windows区域设置切换到法国 - 加拿大并调试我们的应用程序。我看到当前的文化和当前的UI文化被设置为fr-CA。
在OnKeyDown和OnKeyPress中我看到键盘周期(Keys.OemPeriod)和数字键盘周期(Keys.Decimal)之间的区别。 OnKeyDown中会出现特定的按键。然而,在这两种情况下,该事件的OnKeyPress给我们的控制期:
Key OnKeyDown OnKeyPress
================= ============== ==========
Main Keyboard Keys.OemPeriod "."
Number Pad Period Keys.Decimal "."
我们的数字控制处理的事件的OnKeyPress号码输入。由于该期间不是当前文化中的小数分隔符,因此控制拒绝这个字符。
全球化设置是否应该将Keys.Decimal(数字键盘“。”)自动转换为逗号,还是我们的应用程序应该将Keys.Decimal更改为文化特定的小数点分隔符?我期望.NET自动完成这个翻译。