Je crée un projet dans lequel le programme récupère des données d'un port série et l'affiche dans une zone de texte. Mais avec les données, certains caractères indésirables sont également entrés dans la zone de texte via le port série. J'ai essayé de les couper avec '.trim ()' méthode en l'ajoutant dans l'événement textchanged. Mais je ne pouvais pas obtenir le résultat souhaité. Je veux que les lettres indésirables soient allumées continuellement de la zone de texte et que la méthode doit continuer à fonctionner en arrière-plan.
Vous trouverez ci-dessous le code que j'ai essayé: Veuillez noter que ce sont plusieurs lettres (par exemple, ils pourraient être g, m, a, etc.)
Je veux que tous les indésirables soient coupés de la zone de texte directement lorsque Serialport Data est reçue ou après l'entrée du port série. P> P>
3 Réponses :
basé uniquement sur les informations que vous avez fournies, ma suggestion est de simplement utiliser ceci remplace tout char em> dans la chaîne avec une chaîne vide, de facto em> les supprimer.
Gardez à l'esprit que cela nécessite un appel à remplacer (...) code> pour chaque caractère indésirable. P> p>
: Dans quel événement dois-je ajouter cela ?? Est textchanged ok ??
Je pense que textchanged est ok. N'oubliez pas de réaffecter le résultat à la zone de texte, comme remplacer () code> ne change pas la chaîne on l'appelle, mais le retourne plutôt un nouveau:
textbox.text.replace ( ...) code>. Si, pour une raison quelconque, vous souhaitez spécifiquement cibler du texte lorsqu'il est saisi, utilisez le porte-clés, mais cela ne fonctionnera pas avec des pâtes de copie.
D'accord. Être sur cette question. Je vais essayer ce moment et marquer cela comme réponse.
Pas exactement ce que vous avez dit tous, mais quelque chose en regroupant après avoir googling un peu.
string ToBeReplaceCharacters = @"a;b"; foreach(var RepChar in ToBeReplaceCharacters) { textBox1.Text = textBox1.Text.Replace(RepChar.ToString(), ""); }
Je pense que vous pouvez utiliser des expressions régulières pour une solution plus élégante et compacte ...
Vous n'avez pas besoin de itérer à chaque charret d'être éliminé si vous utilisez des expressions régulières.
abc⦠Letters 123⦠Digits \d Any Digit \D Any Non-digit character . Any Character \. Period [abc] Only a, b, or c [^abc] Not a, b, nor c [a-z] Characters a to z [0-9] Numbers 0 to 9 \w Any Alphanumeric character \W Any Non-alphanumeric character \s Any Whitespace \S Any Non-whitespace character
Voici d'autres exemples de motifs: p> Plus d'infos ici: p>
Des données d'exemple et des résultats attendus aideraient votre message.
Trim () Code> Ne retirez pas les caractères de la chaîne. Il les supprime depuis le début et la fin. Il serait préférable de filtrer l'entrée avant de l'ajouter à la zone de texte
@Samikuhmonen: PLS me guide pour le faire avec un exemple de code et dans quel événement le placer.
Vérifiez si
textboxresults.text.contains ("a") code>, si oui
textboxresults.text.reposer.replace ("a", string.empty) code> - rapide et sale, vous pouvez Faites-le plus jolie votre moi?)
Avant de l'afficher dans la zone de texte, nettoyez / nettoyez le texte via une méthode et affiche le résultat dans la zone de texte à la place.
Dupliqué possible de Supprimer les caractères de C # String