テキストボックスクリック時に文字列反転するには?

解決


YYY  2004-04-05 14:50:45  No: 112651  IP: [192.*.*.*]

テキストボックスクリック時に文字列反転させる時、以下のようにするというようにいたるところに書いてありますが、こうすると先頭からクリック位置までが反転されてしまいます。例えば、
文字列:abcde
でcとdの間をクリックすると、abcだけが反転されます。どこをクリックしてもabcde全てを反転させたいのですがどのようにすればよいでしょうか。よろしくお願いします。

Private Sub Text1_GotFocus()
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)
End Sub

環境:VB6.0 sp+5  win2000

編集 削除
特攻隊長まるるう  2004-04-05 16:05:16  No: 112652  IP: [192.*.*.*]

問題ありそうな気もするけどとりあえず。

Private Sub Text1_Click()
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)
End Sub

編集 削除
みい  2004-04-05 16:25:36  No: 112653  IP: [192.*.*.*]

Public FocusFlg As Integer

Private Sub Text1_Click()
    If FocusFlg = 1 Then
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.Text)
    End If
    FocusFlg = 0
End Sub

Private Sub Text1_GotFocus()
    FocusFlg = 1
End Sub

ではいかがでしょう?
GotFocusの後にClickが発生するのが原因だから、
GotFocusの後の初回Clickイベントだけ処理する
ということで。

編集 削除
YYY  2004-04-05 16:54:24  No: 112654  IP: [192.*.*.*]

みいさんの方法で解決いたしました。ありがとうございました。
特攻隊長まるるうさんの方法ではフォーカス移動せずに
もう一度そこをクリックした時も全て選択されてしまいますので
今回は見送らせていただきました。
でもお答えいただきありがとうございました。

編集 削除