2010-12-10 39 views
0

J'ai une forme de victoire avec beaucoup de contrôles: alt textcontrôle ciblé précédent dans WinForms

Je veux savoir quand l'utilisateur entre « txt2 » exactement après qu'il est entré « txt1 ». En d'autres termes, lorsque l'utilisateur est dans 'txt2', je veux savoir si le contrôle précédent 'txt1' ou non.

Quelle est la meilleure façon de faire une telle chose?

+0

Pouvez-vous spécifier dans quelle langue vous travaillez? Ma réponse a supposé que vous travaillez dans .Net. – jakdep

Répondre

2

Vous pouvez simplement conserver une variable de niveau module du type Contrôle qui stocke le dernier contrôle à recevoir le focus. Comme vous devez garder une trace de chaque contrôle qui reçoit le focus, chaque contrôle doit s'abonner à un gestionnaire d'événement commun pour l'événement Enter. Dans ce cas, vous allez affecter le contrôle qui a été entré à la variable de niveau module, mais avant cela, vous pouvez tester le saut entre 'txt1' et 'txt2'.

+0

Est-ce que cela signifie que je dois ajouter Entrer le gestionnaire d'événements à chaque contrôle de mon formulaire? –

+0

Vous pouvez avoir un gestionnaire d'événement Enter commun pour plusieurs contrôles. Souhaitez-vous que tous les contrôles soient similaires à ceux de 'txt1' et 'txt2'? – jakdep

+0

Non, seulement ce deux. –