Comment sélectionner le contenu d'une zone de texte une fois qu'il est activé?

J'ai ce simple objet Userform, où je n'ai TextBox1 et TextBox2. J'ai entrez du texte dans les deux. Assumer l'accent est mis sur (le curseur est dans) la TextBox2. Quand je clique sur TextBox1, je veux tout le texte dans ce contrôle pour être surligné (sélectionné). Donc j'utilise ce code:

Private Sub TextBox1_Enter()
    With TextBox1
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Text)
    End With
    MsgBox "enter event was fired"
End Sub

Il y a un MsgBox à la fin qui est chargé, cela signifie que l'événement fonctionne. Cependant, le texte n'est pas mis en surbrillance. Comment résoudre ce problème?

- Je utiliser le Enter événement et ne souhaitez pas utiliser le MouseDown événement, parce que j'ai besoin du code pour également fonctionner lorsque le TextBox1 est activé par programmation, donc je pense que le Enter événement pour être le meilleur choix, car il est déclenché dans les deux cas! Un autre inconvénient de la MouseDown événement est: quand je clique pour la deuxième fois sur le TextBox1, je ne voudrais pas que l'ensemble du texte pour être mis en évidence plus, parce que l'accent a été mis sur le premier clic et il n'a pas été modifié après que j'ai cliqué sur le même contrôle pour la deuxième fois; ainsi, dans ce cas, je voudrais que le curseur d'agir normalement (pas de garder le texte marqué).

Mise à jour


Quand je clique une fois sur le TextBox1, j'attends d'avoir ce résultat:
Comment sélectionner le contenu d'une zone de texte une fois qu'il est activé?

Si vous cliquez à nouveau, le point culminant serait supprimée et le curseur sera placé à l'endroit où il a été cliqué.

Je n'ai pas réussi à reproduire le problème que votre code a déjà travaillé pour moi, même lorsqu'il est utilisé par programmation!
Vous avez déjà une propriété nommée EnterFieldBehavior. Vous avez juste besoin de le mettre à fmEnterFieldBehaviorSelectAll. C'est la valeur par défaut de cette propriété, vous n'avez rien à faire sauf si vous avez modifié la valeur de la propriété. Il devrait fonctionner sans aucun bout de code.
Je ne sais pas pourquoi, mais ayant le code ci-dessus ne suffit pas de travail pour moi - le texte n'est pas sélectionnée sur cliquez sur. @vacip a dit, la raison pourrait être que le réel (caché) sur événement se produit après l'Entrée de l'événement et que tout simplement annule la sélection.
J'ai vu que la propriété et essayé les deux options disponibles. Aucune utilisation. Je pense que cette propriété est buggé, parce qu'il doit faire exactement ce dont j'ai besoin et ça ne marche pas. Avez-vous testé ce comportement? Si cela fonctionne, pourriez-vous s'il vous plaît partager une capture d'écran contenant toutes les propriétés de la zone de texte, pour que je puisse l'essayer avec le même jeu?
Mon mauvais.. je devrais avoir lu la documentation correctement avant de commenter ici. Il affirme que cette propriété est uniquement pour l'Onglet de pression de touche et pas pour autre chose. C'est ici: msdn.microsoft.com/en-us/library/office/gg251742.aspx

OriginalL'auteur ZygD | 2015-05-08