Поделиться на странице в Facebook с сообщением об ошибке

Не может быть более простым, чем это, я думаю ...

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
21
задан Harish Godara 5 January 2018 в 08:21
поделиться