Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 674

Только цифры точка и запятая в TextBlock

22.08.2018, 13:40. Показов 2602. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Собственно проблема, нужно для TextBlock - ограничить ввод, только цифры, точка, запятая.
Все это проходит в Студии 2017, C# для платформы Windows UWP.

Все варианты что я нашел, предполагают, написание различного кода, иногда довольно большого объема для такой процедуры, плюс могут возникать проблемы для разных языков.

Если такая возможность "из коробки"? Возможность просто задать свойство для TextBlock?
Например для Андроида это всего лишь срока digits ="1234567890.," и все, на всех языках, на всех локалях будет работать.

Если что то подобное для UWP?
Или только писать самому различного рода и сложности костыли?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2018, 13:40
Ответы с готовыми решениями:

Проверка строки что в ней были только цифры, запятая или точка
Есть строки $s_1 = 11; //1 стр $s_2 = 11.22; //2 стр $s_3 = '11,12'; //3 стр

Как сделать чтобы в textbox писались только цифры и запятая?
Как сделать что бы в Windows Forms, а точнее в textbox сделать так что бы писались только цифры и запятые.

Разработать процедуру подсчёта количества знаков препинания (знаки препинания: запятая, точка, точка с запятой, двоеточие)
Разработать процедуру подсчёта количества знаков препинания (знаки препинания: запятая, точка, точка с запятой, двоеточие). Добавлено...

7
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
23.08.2018, 00:03
Во первых, в TextBlock ничего нельзя ввести, это контрол который только отображает информацию.

Во вторых, первая же мысли, подписать TextBox на TextChanged, где и обрабатывать ваш ввод:
C#
1
2
3
4
5
6
7
8
// Пример того что делать, если превышена длина более чем на 3 символа
public void ControlTheInputOfTheNumberOfRepetitions(object sender, TextChangedEventArgs e)
{
    if (((TextBox)sender).Text.Length > 3)
    {
        ((TextBox)sender).Text = ((TextBox)sender).Text.Substring(0, 3);
    }
}
1
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 674
23.08.2018, 10:22  [ТС]
Да конечно TextBox, почему написал TextBlock, не знаю.
Ваше решение реально, но как я писал выше, это самостоятельная реализация. Т.е. по сути нужно написать свой фильтр.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
23.08.2018, 11:08
Лучший ответ Сообщение было отмечено Vladimir93 как решение

Решение

Цитата Сообщение от Vladimir93 Посмотреть сообщение
Т.е. по сути нужно написать свой фильтр.
Естественно, т.к. из "коробки" таких функций нет.
1
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 674
23.08.2018, 12:26  [ТС]
Просто удивительно что такая востребованная функция, и не реализована. При том что подразумевалось что разработка так же будет вестись под мобильные телефоны, где такой функционал - обязателен.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
23.08.2018, 13:06
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Просто удивительно что такая востребованная функция, и не реализована.
Функция настолько востребована, что отдана на совесть программистов, чтобы каждый мог фильтровать только то, что ему необходимо. Но это не из-за этого, тут дело в самой архитектуре WPF (связано как раз с валидацией вводимых значений).
0
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
23.08.2018, 21:10
Кстати в UWP можно обойтись без метода обработки. Возможно воспользоваться обычным свойством, к которому привязывается TextBox в двух направлениях:

XML
1
<TextBox Text="{x:Bind ViewModel.InputText, Mode=TwoWay}" />
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private string inputText;
 
public string InputText
{
    get => inputText;
    set
    {
        // Проверяем на вхождение символов, и если всё в порядке - присваиваем
        inputText = value;
        // Требуется вызвать при изменении строки для того что бы сообщить View о перерисовке
        OnPropertyChanged();
    }
}
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
24.08.2018, 09:21
А у меня вот наоборот геморрой какой-то. В TextBox не могу вводить дробный разделитель, поле обозначено как double, а разделитель не вводится

Добавлено через 6 минут
Вот решение моей проблемы:
Ввод дробного числа в TextBox

Добавлено через 9 минут
А вот и статья на хабре:
https://habr.com/post/137822/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2018, 09:21
Помогаю со студенческими работами здесь

Ошибка при проверке, что в поле вводятся только цифры и точка с запятой
Я уже реально замучился. Вроде, всё просто, но не работает. s:=EditDigit1.Text; for i := 1 to s.Length do if ((s&lt;&gt;'0')...

Регулярка для замены исходной строки из 6 цифр на такие же цифры, только после 3й стоит точка
подскажите пожалуйста что не так, задача: сделать замену исходной строки из 6 цифр на такие же цифры только после 3й стоит точка (по сути...

точка-запятая
Как научить программу просто работать с разными разделителями целой и дробной части-т.е. &quot;.&quot; или &quot;,&quot;

Точка или запятая?
Всем привет. Имеется программа на Delphi. Суть программы, добавляет какие-то данные в базу данных Mysql. Вчера решил добавить данные на...

Atof - точка и запятая в строке
Работает правильно: string s = &quot;0,6&quot;; float f = stof(str); Работает неправильно (отбрасывает все что после точки): string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru