Я использую следующий код, чтобы решить, если '.' (полная остановка) введен в элемент управления веб-браузера:
private void body_KeyUp(object sender, HtmlElementEventArgs e)
{
if (e.KeyPressedCode == '.')
{
// Do something
}
}
Согласно msdn KeyPressedCode возвращает значение ASCII. То, что я получаю с помощью контрольной точки, это «190», если я ввожу «.» тем не мение. Это даже не указано в стандартной таблице ASCII.
Очевидно, я мог бы просто проверить 190, но я боюсь, что KeyPressedCode может возвращать разные значения в разных системах с разными кодовыми страницами, языками и т. Д.
Не могли бы вы объяснить, почему KeyPressedCode возвращает «190» вместо «46» и как я могу «безопасно» справиться с этой проблемой?
Интересно, что возвращаемое значение для '' (пробел) всегда корректно ('32').
Игра с System.Text.Encoding.GetEncoding и различными кодовыми страницами не решила проблему, однако у меня нет большого опыта работы с кодовыми страницами.