- ベストアンサー
フォーカスの移動
IMEソフトキーボードのようなものを作っています。 フォーム1にテキストボックスがあり、フォーム2をソフトキーボード。というように作りたいと思っているのですが問題があります。 コマンドボタンを押すごとに1文字ずつ送るような作りになっているのですが、1文字ごとにテキストボックスからコマンドボタンにフォーカスが移るため、2文字以上の文字列の変換ができないのです。VB的に無理なのかもしれないですが、IMEソフトキーボードのようにテキストボックスにフォーカスをセットしたままの文字入力を出来ないでしょうか?ちなみにkeybd_eventを使っています。 時間がありましたら、ご教授のほどよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
うーん、文字を送るたびにプログラム側でフォーカスをテキストボックスに戻せばいいんじゃないですか? それか最初からテキストボックスをモーダルウィンドウとして開くか。
その他の回答 (2)
noname#22222
回答No.2
うーん。VBがないので未テストですが、SelStartとSelLengthが使えたような!綴りも怪しいです!
質問者
補足
ご回答ありがとうございます。 SelStartとSelLengthで反転させると変換は出来るのですが、変換する文字列を指定するのが難しいので…。わざわざご回答頂いたのにすいません。
noname#22222
回答No.3
うーん。VBがないので未テストですが、SelStartとSelLengthが使えたような!綴りも怪しいです!
補足
ご回答ありがとうございます。 説明不足ですいません。コマンドボタンを押したときにセットフォーカスでテキストボックスにフォーカスを移しているのですが、ボタンを押した時点で一度フォーカスがボタンに移ってテキストボックスから離れてしまうので1文字ごとに自動で確定してしまうんです。要はコマンドボタンを押すと変換しないままでエンターを押したのと同じ状態になってしまうんです。それをどうにかできればと思ったんですが。 モーダルウィンドウっていうのははじめて聞いたので調べてみます。