• ベストアンサー

フォーカスの移動

IMEソフトキーボードのようなものを作っています。 フォーム1にテキストボックスがあり、フォーム2をソフトキーボード。というように作りたいと思っているのですが問題があります。 コマンドボタンを押すごとに1文字ずつ送るような作りになっているのですが、1文字ごとにテキストボックスからコマンドボタンにフォーカスが移るため、2文字以上の文字列の変換ができないのです。VB的に無理なのかもしれないですが、IMEソフトキーボードのようにテキストボックスにフォーカスをセットしたままの文字入力を出来ないでしょうか?ちなみにkeybd_eventを使っています。 時間がありましたら、ご教授のほどよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Silicagel
  • ベストアンサー率20% (15/73)
回答No.1

うーん、文字を送るたびにプログラム側でフォーカスをテキストボックスに戻せばいいんじゃないですか? それか最初からテキストボックスをモーダルウィンドウとして開くか。

cross22
質問者

補足

ご回答ありがとうございます。 説明不足ですいません。コマンドボタンを押したときにセットフォーカスでテキストボックスにフォーカスを移しているのですが、ボタンを押した時点で一度フォーカスがボタンに移ってテキストボックスから離れてしまうので1文字ごとに自動で確定してしまうんです。要はコマンドボタンを押すと変換しないままでエンターを押したのと同じ状態になってしまうんです。それをどうにかできればと思ったんですが。 モーダルウィンドウっていうのははじめて聞いたので調べてみます。

その他の回答 (2)

noname#22222
noname#22222
回答No.2

うーん。VBがないので未テストですが、SelStartとSelLengthが使えたような!綴りも怪しいです!

cross22
質問者

補足

ご回答ありがとうございます。 SelStartとSelLengthで反転させると変換は出来るのですが、変換する文字列を指定するのが難しいので…。わざわざご回答頂いたのにすいません。

noname#22222
noname#22222
回答No.3

うーん。VBがないので未テストですが、SelStartとSelLengthが使えたような!綴りも怪しいです!

関連するQ&A