none
TextBoxで入力確定した文字列がファンクションキーで再変換されるのを防ぐには? RRS feed

  • 質問

  • TextBoxを配置した画面を作成し、F7キーが押された時に、特定のアクションを起こすアプリケーションを作成しています。
    TextBoxに文字列を入力し確定後、F7キーを押すと、アプリケーションで設定した特定のアクションの実行と同時に、TextBoxに入力された文字列がカタカナに変換されてしまいます。
    おそらく、TextBoxにフォーカスが当たっているときにF7キーを押すと、確定済みの文字列に対して自動的にIMEの再変換処理が実行されていると思うのですが、確定している文字列に対して再変換が実行されないようにする方法はありますでしょうか?
    2009年9月4日 5:57

すべての返信

  • 質問の内容から推測して「TextBoxに文字を入力し確定後」は「TextBoxにひらがな(IMEが利いている)を入力中」で宜しいでしょうか?
    TextBoxにひらがなを入力確定後(EnterなどでIMEを確定)ではF7によるIME変換は行われないので・・。

    ひらがな入力中だと仮定し、その場合であればPreviewKeyDownイベントのイベントアーギュメント内にあるImeProcessedKeyプロパティを使用して
    IMEが利いている時のキー情報が取得出来ますので、「ImeProcessedKey == Key.F7」のように条件判断後「e.Handled = true」としてF7を無効にする事が出来ます。

    その上で、特定のアクションをおこされるといった実装ではどうでしょうか?

    kazuto Blog : http://blogs.wankuma.com/kzt/
    • 回答の候補に設定 菊地俊介 2009年9月18日 8:18
    2009年9月4日 7:33
  • 皆様、こんにちは。

    和人さん、回答ありがとうございます。

    hagechabinさん、はじめまして。フォーラムのご利用ありがとうございます。
    その後いかがでしょうか?hagechabinさんが作成した処理というのは、テキストボックスの文字列を選択状態にしてから実行するのでしょうか?

    和人さんのアドバイスで解決していないようでしたら、再現可能なサンプルコードなど、処理の内容をもう少し詳しく書いて投稿していただければと思います。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    2009年9月18日 8:18