Как обрезать определенные символы из текстового поля непрерывно в фоновом режиме? - PullRequest
0 голосов
/ 08 мая 2019

Я создаю проект, в котором программа извлекает данные из последовательного порта и отображает их в текстовом поле.Но наряду с данными, некоторые нежелательные символы также вводятся в текстовое поле через последовательный порт.Я попытался обрезать их с помощью метода .Trim (), добавив его в событие textaged.Но я не смог получить желаемый результат.Я хочу, чтобы определенные символы непрерывно обрезались из текстового поля, и метод должен продолжать работать в фоновом режиме.

textBoxResults_TextChanged(...)
{
  char[] trim=('a', 'b');
  textBoxResults.Text.Trim(trim);
}

Обратите внимание, что это несколько символов (например, это могут быть g, m, a и т. Д.)..) Я хочу, чтобы все символы, оставляющие указанные символы, были обрезаны из текстового поля либо непосредственно при получении данных последовательного порта, либо после ввода с последовательного порта.

Ответы [ 3 ]

0 голосов
/ 08 мая 2019

вы можете сделать что-то вроде следующего, если у вас есть несколько символов, которые вы хотите вытащить:

string[] trim = {"a", "b"};
foreach (var c in trim)
{
  textBoxResults.Text.Replace(c, string.Empty);
}
0 голосов
/ 08 мая 2019

Не совсем то, что вы все сказали, но что-то сгруппировано после того, как вы немного погуглили.string ToBeReplaceCharacters = @"a;b"; foreach(var RepChar in ToBeReplaceCharacters) { textBox1.Text = textBox1.Text.Replace(RepChar.ToString(), ""); } То, что сказал Стэклойд, подходит для замены одного символа, но не нескольких символов.Приведенный выше код выполняет мое требование.

Спасибо всем!

0 голосов
/ 08 мая 2019

Исходя только из предоставленной вами информации, я предлагаю просто использовать

textBoxResults.Text = textBoxResults.Text.Replace("<unwanted char>", "")

Это заменяет любой нежелательный символ в строке пустой строкой, де-факто удаляя их. Помните, что для этого требуется вызов Replace(...) для каждого нежелательного символа.

...