2010-09-08 20 views
1

J'ai un formulaire WPF où une zone de texte et une étiquette sont présentes.Dans l'événement "Lost Focus" de la zone de texte, je fais une validation et si la validation échoue, je vais montrer un message d'erreur dans l'étiquette dans la zone de texte Le problème est que je mets le focus sur les bos texte, le « événement Lost_Focus s tiré à nouveau et ma fonction de validation appelé récursive et je reçois une « exception StackOverflow »WPF: Remettre le focus sur la zone de texte appelant récursivement événement de focus perdu .Comment résoudre?

An unhandled exception of type 'System.StackOverflowException' occurred in 
    mscorlib.dll 

Si je commente la ligne de mettre le curseur/mise au point dans la zone de texte, tout fonctionne bien. Mais j'ai besoin le curseur dans la zone de texte si la validation échoue

Toute pensée comment se débarrasser de cette situation?

Répondre

0

Que diriez-vous de manipulation TextBox.PreviewLostKeyboardFocus à la place? Et dans le gestionnaire d'événements, il suffit de définir "e.Handled = true" lorsque la validation échoue?

+0

AperçuLostKeyboardFocus s'occupera uniquement de l'entrée au clavier. Mon application utilisera un lecteur de codes-barres pour lire les valeurs dans la zone de texte – Shyju

+0

Je pense que cela devrait fonctionner de la même manière, n'est-ce pas? L'avez-vous essayé? – ASanch

+0

Non ça n'a pas fonctionné – Shyju