Ich verwende den folgenden Code, um zu entscheiden, ob ein '.' (Punkt) wurde in ein WebBrowser-Steuerelement eingegeben:HtmlElementEventArgs KeyPressedCode Confusion
private void body_KeyUp(object sender, HtmlElementEventArgs e)
{
if (e.KeyPressedCode == '.')
{
// Do something
}
}
Nach Msdn KeyPressedCode gibt einen ASCII-Wert. Was ich beim Breakpointing bekomme, ist '190', wenn ich ein '.' jedoch. Dies ist nicht einmal in der Standard-ASCII-Tabelle aufgeführt. Offensichtlich konnte ich einfach auf 190 testen, aber ich befürchte, dass KeyPressedCode unterschiedliche Werte auf verschiedenen Systemen mit unterschiedlichen Codepages, Sprachen usw. zurückgeben kann.
Können Sie mir bitte erklären, warum KeyPressedCode '190' anstelle von '46' zurückgibt und wie ich dieses Problem "sicher" lösen kann?
Interessanterweise ist der Rückgabewert für '' (Leerzeichen) immer korrekt ('32'). Spielen mit System.Text.Encoding.GetEncoding und verschiedene Codepages hat das Problem nicht gelöst, ich habe jedoch nicht viel Erfahrung mit Codepages.