[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/06/29(Wed) 18:20
投稿者名:Long
Eメール:
URL :
タイトル:
テキストボックスのキャレット位置
いつもお世話になっています。
環境:VB6 SP5

やりたい事
2つのテキストボックスが配置された Form があります。
command ボタンをクリックした時にキャレットのある位置に文字列を挿入したい。

質問
command ボタンをクリックした時にどちらのテキストボックスに
キャレットが存在するかを判定するにはどうすればよいのでしょうか?

よろしくお願いします。

投稿時間:2005/06/29(Wed) 19:00
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: テキストボックスのキャレット位置
そのFormにPrivateな変数を用意しておいて、それぞれのTextBoxのGotFocus
イベントでどちらがより最近(変な日本語)フォーカスを得たのかを保持させて
おくとか。

投稿時間:2005/06/29(Wed) 20:13
投稿者名:Long
Eメール:
URL :
タイトル:
Re^2: テキストボックスのキャレット位置
K.J.K. さんありがとうございます。
こんな方法があるんですね!

ただ、この方法だとひとつだけ問題が残りまして、どちらのテキストボックスにも
キャレットが存在しない場合に最後に Focus を得た場所に挿入されます。
これを防止するために LostFocus イベントで変数を書き換えてみたのですが、
Command ボタンを押すタイミングでイベントが発生してしまいうまくいきませんでした。

もしこの部分をクリアできるような方法があれば教えてください。
よろしくお願いします。

投稿時間:2005/06/29(Wed) 21:32
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: テキストボックスのキャレット位置
その辺りは適切に条件分岐を考えるべきでしょう。
どちらのTextBoxもFocusを得る前の状態とか、Enabled、Locked
プロパティが変更された後とか、いろいろありますよね。

とある他のコントロールにFocusが移ったときにはキャレットが
なくなるとみなす、とするのであれば、そのコントロールの
GotFocusイベントでPrivate変数に変更を加えるようにするとか。

投稿時間:2005/06/29(Wed) 23:18
投稿者名:Long
Eメール:
URL :
タイトル:
Re^2: テキストボックスのキャレット位置
K.J.K.さん
何度もありがとうございます。
ご指摘の通りいくつか考えられる方法があると思いますので
これから試していきたいと思います!

今回はどうもありがとうございました。