Не может быть более простым, чем это, я думаю ...
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
With TextBox1
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub
Если вы нажмете на текстовое поле или вкладку в него, он будет делать то, что вы хотите. Чтобы отменить выбор текста, используйте клавиши со стрелками.
Объяснение
Если вы отлаживаете код, вы увидите, что даже если вы сказали .SetFocus
, фокус не находится в текстовом поле , .SetFocus
не работает в TextBox1_Enter()
, и вам нужно сосредоточиться, чтобы остальная часть кода работала. И, следовательно, моя альтернатива ...
Альтернатива
Вам также может понравиться эта версия :) Это преодолевает ограничение использования мыши в TextBox
Dim boolEnter As Boolean
Private Sub TextBox1_Enter()
boolEnter = True
End Sub
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
If boolEnter = True Then
With TextBox1
.SelStart = 0
.SelLength = Len(.Text)
End With
boolEnter = False
End If
End Sub