Как удалить символ в текстовое поле, которое не является номером? - PullRequest
0 голосов
/ 19 марта 2019

Мне нужно использовать изменение текста, потому что мне также нужно разрешить ввод посредством речи и рукописного ввода

private void Year_TextChanging(TextBox sender, TextBoxTextChangingEventArgs args)
        {
            //after text changing check every character to see if it's an int.

            for (int i = 0; i < sender.Text.Length; i++)
            {
                if(Char.IsNumber(sender.Text[i]))
                {
                    return;
                }

                else if (!Char.IsNumber(sender.Text[i]))
                {
                    sender.Text.Remove(i);
                }
            }
        }

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Почему бы не использовать расширение TextBox UWP - Windows Community Toolkit ?Это помогло вам сделать все суждения.

Вам просто нужно установить пакет nuget Microsoft.Toolkit.Uwp.UI для вашего проекта UWP, а затем использовать его на странице XAML, как показано ниже:

xmlns:extensions="using:Microsoft.Toolkit.Uwp.UI.Extensions"
<TextBox extensions:TextBoxRegex.ValidationType="Number" extensions:TextBoxRegex.ValidationMode="Dynamic"></TextBox>
1 голос
/ 19 марта 2019

Во-первых, давайте перейдем к вопросу, как узнать, является ли символ числом или нет? В этом случае я обычно предпочитаю заменять данный символ на число. Если это число, ответ лежит в диапазоне от 0 до 9. Итак, вопрос сейчас в том, как вы конвертируете? Самый простой способ - вычесть с помощью символа '0'. Поэтому, вычитая, мы получаем разницу, которая является исходным числом. например, значение ASCII символа '0' равно 48 ASCII-значение char '5' равно 53 поскольку разница между символами дает нам разницу между их значениями ASCII, мы получаем число.

Итак, теперь возьмите символ из текстового поля и вычтите каждый символ с символом '0', если его значение не лежит между 0 и 9, которое вы можете удалить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...