2016-02-11 2 views
0

J'ai pu faire en sorte que mon programme sélectionne tout le texte dans une zone de texte lorsque l'utilisateur clique sur la zone.SelectAll() Ne fonctionnait pas après l'ajout de zones de texte à une zone de groupe

Private Sub txtPreserve_Click(sender As Object, e As EventArgs) 
    txtPreserve.SelectAll() 
End Sub 

Je suis requis (devoirs) pour mettre les zones de texte à l'intérieur d'une zone de groupe afin d'utiliser un pour chaque boucle sur eux. Après les avoir placés dans une zone de groupe, la fonction selectAll() ne fonctionne plus. Cela fonctionnait à merveille.

J'imagine que j'ai besoin de spécifier la zone de texte d'une manière différente avant d'émettre la fonction .selectAll(). Si quelqu'un connaît un travail ou une méthode alternative, j'apprécierais grandement.

edit: pour être clair, le programme compile et fonctionne correctement. Il ne sélectionne tout simplement pas le texte pour faciliter le remplacement du texte par l'utilisateur.

+1

Comment les avez-vous déplacés dans le GroupBox? Si vous avez coupé-coller, vous avez coupé l'événement, auquel cas vous devez vous y abonner à nouveau. – LarsTech

+0

J'ai fait couper et coller, une recherche rapide sur google m'a amené à cette conclusion. –

+0

À l'avenir, essayez de faire glisser les contrôles dans un nouveau conteneur. Cela préservera les gestionnaires d'événements. – LarsTech

Répondre

0

Vous devez gérer l'événement clic:

Private Sub txtPreserve_Click(sender As Object, e As EventArgs) Handles txtPreserve.Click 
    txtPreserve.SelectAll() 
End Sub 

Parfois, quand on les coupe et coller les contrôles que vous pouvez perdre le gestionnaire.

0

On dirait que vous avez plusieurs zones de texte où vous pourriez vouloir le même comportement. Dans ce cas, le suivant pourrait être une solution efficace:

Private Sub MyMultipleEventHandler (ByVal sender as System.Object, ByVal e as System.EventArgs) Handles txtPreserve.Click, txt2.Click, txt3.Click 
    Dim tb as textbox = sender 
    sender.SelectAll() 
End Sub 

Cela carte tous les événements de clic textbox au même gestionnaire. L'expéditeur représente l'objet qui a envoyé l'événement, dans ce cas, la zone de texte indiviudal. Coulée L'expéditeur comme une zone de texte vous permet d'appeler SelectAll() sur cette zone de texte.

0

J'ai eu un problème similaire récemment. Ma solution consistait à définir la zone de texte en tant que contrôle actif avant d'appeler textbox.SelectAll()

ActiveControl = textbox 
textbox.SelectAll()