2009-07-19 13 views
0

次のコードを使用して、 '。 (ピリオド)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が '46'ではなく '190'を返す理由と、この問題を「安全に」管理する方法を教えてください。

興味深いことに、 ''(スペース)の戻り値は常に正しいです( '32')。 System.Text.Encoding.GetEncodingと異なるコードページを再生しても問題は解決されませんでしたが、コードページの使用経験はあまりありません。

答えて

1

ちょうど野生の推測ができますが、の値をチェックしたが、をe.AltKeyPressed をe.CtrlKeyPressedとをe.ShiftKeyPressed?私が何を得ているのかが分かりますか?

2

キーコード190は.のOEM番号キーコードなので、有線キーボードを使用していた可能性があります。ラップトップを使用していた場合、期待どおりに動作します。