Я использую следующий код, чтобы решить, есть ли '.' (Полная остановка) была введена в элемент управления WebBrowser:HtmlElementEventArgs KeyPressedCode Confusion
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 и разных кодовых страниц не решило проблему, однако у меня мало опыта работы с кодовыми страницами.