テキストボックスクリック時に文字列反転させる時、以下のようにするというようにいたるところに書いてありますが、こうすると先頭からクリック位置までが反転されてしまいます。例えば、
文字列:abcde
でcとdの間をクリックすると、abcだけが反転されます。どこをクリックしてもabcde全てを反転させたいのですがどのようにすればよいでしょうか。よろしくお願いします。
Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
環境:VB6.0 sp+5 win2000
問題ありそうな気もするけどとりあえず。
Private Sub Text1_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
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イベントだけ処理する
ということで。
みいさんの方法で解決いたしました。ありがとうございました。
特攻隊長まるるうさんの方法ではフォーカス移動せずに
もう一度そこをクリックした時も全て選択されてしまいますので
今回は見送らせていただきました。
でもお答えいただきありがとうございました。