Я пытаюсь стереть последний символ строки, если это не число. Я закомментировал одну строку, в которой написано a = "hi" ;, однако она срабатывает, если я ввожу любую букву. Итак, я знаю, что логика верна, но я просто не могу заставить ее стереть символ, если это буква. Я пытаюсь сделать так, чтобы это текстовое поле разрешало только числовые символы в строке, потому что я собираюсь использовать его для математических уравнений позже. Любая помощь приветствуется.
private void NameField_TextChanging(TextBox sender, TextBoxTextChangingEventArgs args)
{
string a = NameField.Text;
int b = a.Length - 1;
char c = a[b];
if (!Char.IsDigit(c))
{
//a = "Hi";
a.Remove(b);
NameField.Text = a;
Tester.Text = a;
}
}
Да, Джуло, ты был прав. изменение его на a = a.Remove (b) определенно удаляет любой нечисловой символ
Алексей Левенков Я просил, как это сделать. Я просто добавил свой код, чтобы получить какое-то руководство, но я подумал, что удаление - это неправильный способ сделать это.





Функция удаления использует startindex для удаления содержимого строки. передать индекс, откуда нужно удалить, и вы также можете отправить счетчик.
строковое значение = "привет"; строка removevalue = value.Remove (value.Length - 1);
Проблема, почему он не удаляет символ, заключается в том, что ваш код не обрабатывает результат удаленного символа. Чтобы удалить строку, необходимо изменить ее на:
a = a.Remove(b);Вторая проблема заключается в том, что введенный пользователем символ не должен быть последним символом в строке.