次のコードを使用して、「。」かどうかを判断しています。(ピリオド) が webbrowser コントロールに入力されました:
private void body_KeyUp(object sender, HtmlElementEventArgs e)
{
if (e.KeyPressedCode == '.')
{
// Do something
}
}
msdn KeyPressedCode によると、ASCII 値が返されます。「.」を入力すると、ブレークポイントによって得られるのは「190」です。でも。これは、標準の ASCII テーブルにも記載されていません。もちろん、単純に 190 をテストすることもできますが、KeyPressedCode は、コード ページや言語などが異なるシステムごとに異なる値を返すのではないかと心配しています。
KeyPressedCode が「46」ではなく「190」を返す理由と、この問題を「安全に」管理する方法を教えてください。
興味深いことに、' ' (スペース) の戻り値は常に正しい ('32') です。System.Text.Encoding.GetEncoding とさまざまなコード ページで遊んでも問題は解決しませんでしたが、コード ページの経験はあまりありません。