- - PR -
オブジェクト毎のInsertキー状態を取得する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-01-15 11:20
質問させて頂きます。
開発環境 OS:Windows Vista 開発ツール:VisualStudio 2008 SP1 開発言語:C# WPFアプリケーションで2つのテキストボックスA・Bから 各それぞれのInsertキーの状態を取得し、取得した結果から キー状態表示やInsertキーON/OFF切替を行いたいと考えて おります。 というのも、私の認識としてInsertキーの状態というのは 1台パソコンで1つの情報であり全プロセス共通と思いこんで おりました。 しかし上記のWPFアプリケーションにて、一方のテキストボックスA にフォーカスが当たっている状態でInsertキーを押すと 現在フォーカスが当たっていないもう一方のテキストボックスBには Insertキーが効いていない事がわかりました。 つまり、Insertキーの状態は各オブジェクト毎で保持しているという 事になります。 以下、コードでInsertキーの状態を取得する方法はあります。 System.Windows.Forms.Control.IsKeyLocked(System.Windows.Forms.Keys.Insert) しかし、これで取得できるキー状態はテキストボックスの状態ではない ようです。 同じような点で調査した事がある方、いらっしゃいましたら 情報を頂けないでしょうか。 宜しくお願い致します。 [ メッセージ編集済み 編集者: daikoku 編集日時 2009-01-15 13:17 ] [ メッセージ編集済み 編集者: daikoku 編集日時 2009-01-15 13:50 ] | ||||
|
投稿日時: 2009-01-15 18:09
OS としてそういう情報は保持していません。各プロセスが勝手に扱います。 IsKeyLocked は単純に KeyDown ごとに変更されるトグル状態を取得しているだけで、トグル状態は全てのキーに対して状態が保存されています。 ということを踏まえた上で。 現状の WPF じゃ取得や設定はできないみたいですね。内部に上書きモードを保持するメンバがいますけど公開されていません。 そもそも IME 使って変換経由で入力したときには上書きモードでも強制的に挿入になる(少なくとも XP SP2 / Microsoft Natural Input 2002 で試した限りは)とか言ったバグもあるみたいです。 プロダクト フィードバック センター に要望してみるのもいいかもしれません。 // VS10 は WPF で実装されるそうですから、この辺の意見・バグは優先度が高い…かもしれません。 | ||||
|
投稿日時: 2009-01-28 09:26
>Hongliangさん
回答ありがとうございますm(_ _)m 理解致しました。 要望の方を出してみたいと思います。 今後の為、その非公開のメンバーについて ちょっと調べて見たいと思っておりますが、 そのメンバーはMSDNのヘルプに掲載されている のでしょうか・・・。 それではありがとうございました。 |
1