DOBON.NET DOBON.NETプログラミング掲示板過去ログ

IMEがListBoxのKeyDownを横取りする

環境/言語:[WPF]
分類:[.NET]

WPFです。

ListBoxのKeyDownイベントを拾って処理するコードを書いていたのですが、PCによって動かないという状況になりました。

調べたところ、IMEの設定が、IME standardになっているPCでは動作し、
Natural inputになっているPCだと、KeyDownイベントがIMEに横取りされて動いていないことがわかりました。
Natural inputだと、アプリケーション起動時に勝手に日本語入力がONになり、OFFにしてもキーは横取りされたままです。

横取りされるキーは、アルファベットや数字キー、Deleteキーなどです。
PreviewKeyDownイベントを調べたところ、Keyの値がImeProcessedになっていました。

IMEによる横取りを防ぐ手はないでしょうか?
あるいは、横取りされる前のキーを取得する方法はないでしょうか?
■No25148に返信(KJさんの記事)
> Natural inputだと、アプリケーション起動時に勝手に日本語入力がONになり、OFFにしてもキーは横取りされたままです。
>

IME2002ならIME2003にするとか、Natural inputをやめてもらうとか

http://www.d-toybox.com/studio/weblog/show.php?mode=single&id=2009022700&mimemode=quirks
2009/08/07(Fri) 00:26:53 編集(投稿者)

> IME2002ならIME2003にするとか、Natural inputをやめてもらうとか
>
うまく動かないPCは、Natural Input 2002でした。。。
そうですか、勝手にONになるのは、Natural Input 2002の仕様ですか。
Natural Input 2003の挙動を調べて、2002限定なら放置かも。

DOBON.NET | プログラミング道 | プログラミング掲示板