2016-06-09 4 views
0

Je suis en train de créer une application qui a trois zones de texte. En tapant dans une case, les deux autres auront des versions "converties" du texte affiché. Les trois boîtes peuvent être saisies dans le même but et servir à la même fin (bien qu'elles fournissent des résultats différents pour la conversion).C# Evénement "Textchanged" et boucle infinie?

L'événement "TextChanged" est appelé chaque fois que la valeur de texte de la boîte est modifiée, ce qui est assez explicite. Mais cet événement se déclenchera également si je change la valeur par le code.

Dites si j'ai changé la première boîte, cela créerait du texte dans la seconde. La deuxième case déclencherait-elle également l'événement? Et cela entraînerait-il une boucle infinie?

+0

Je pense que cela est une situation intéressante, mais que je l'ai vu mis en oeuvre avant. Je pense que vous devriez écrire du code et découvrir! – dckuehn

+0

J'ai d'abord essayé d'écrire deux chaînes (une pour chaque conversion), puis d'appliquer cette chaîne au champ de texte de la boîte. Il a refusé de me laisser taper quand je l'ai testé, en donnant constamment une zone de texte vide. Je suppose que c'est parce qu'il appliquait constamment une chaîne vide chaque fois que j'ajoutais quelque chose. Je l'ai changé pour appeler la fonction de conversion (et donc appliquer de nouvelles chaînes) quand j'ai appuyé sur la touche d'entrée, plutôt que sur textchanged. Fonctionne bien maintenant mais en utilisant la touche "Entrée" crée un personnage que je ne sais pas comment référencer ... mais c'est un problème entièrement nouveau. – Michael

Répondre

0

Non, ce ne serait pas le cas. Texte extrait de la page MSDN de l'événement:

L'événement TextChanged est déclenché lorsque le contenu de la zone de texte est modifié entre les publications sur le serveur. L'événement n'est levé que si le texte est modifié par l'utilisateur; l'événement n'est pas déclenché si le texte est modifié par programmation.

MSDN page