Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207

Запрет отображения символов кроме указанных в TextBox

04.10.2024, 13:39. Показов 1486. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане.Подскажите как можно запретить программным способом отображение в TextBox символов кроме определенных.Как сделать чтобы пользователь не мог вводить сам я знаю
VB.NET
1
2
3
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        e.KeyChar = If("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".Contains(e.KeyChar) OrElse e.KeyChar = vbBack, e.KeyChar, Nothing)
    End Sub
.А вот как программным нет.Существует переменная на которую могут приходить любые данные и эти данные нужно отсеять в TextBox.
1
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2024, 13:39
Ответы с готовыми решениями:

Запрет ввода символов кроме цифр в TextBox
как запретить ввод букв и остальных символов кроме цифр в textbox'e

Запрет ввода символов всех кроме указанных
Здравствуйте. Каксделать в textbox запрет ввода символов всех кроме нужных а именно A-Z,А-Я,Щ-Ш, !"#$%&',()*+,-./...

Запрет отображения скрытых символов
Подскажите, пожалуйста, возможно ли написать макрос, который бы запрещал показывать скрытые символы в Ворде?. Т.е. к примеру в тексте...

20
Любитель
 Аватар для Тим70
1047 / 757 / 161
Регистрация: 27.01.2019
Сообщений: 1,531
04.10.2024, 15:25
Strannik_san, Например с помощью регулярки
VB.NET
1
2
3
4
5
6
7
8
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Str As String = "ABCфычс мс 123 rt"
        Dim Reg As New Regex("[A-Z0-9]")
        Dim B1 As MatchCollection = Reg.Matches(Str)
        For i = 0 To B1.Count - 1
            TextBox1.AppendText(B1.Item(i).ToString)
        Next
    End Sub
1
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
04.10.2024, 19:44
Вариант
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim text As String = "Александр Мостовой провел 65 матчей за сборные"
    Dim filter As String = "А5йс"
    TextBox1.Text = filterOut(text, filter)
End Sub
 
Private Function filterOut(txt As String, flt As String) As String
    Dim cf = flt.ToCharArray
    Dim words() As String = txt.Split(" ")
    Dim lst As New List(Of String)
    For Each w As String In words
        lst.Add(String.Concat(Of Char)(w.ToCharArray.Except(cf)))
    Next
    Return String.Join(" ", lst.ToArray)
End Function
1
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
04.10.2024, 20:26  [ТС]
ovva, В переменной может быть что угодно.Главное исключить русские символы в верхнем и нижнем регистре.
0
Любитель
 Аватар для Тим70
1047 / 757 / 161
Регистрация: 27.01.2019
Сообщений: 1,531
04.10.2024, 20:45
Цитата Сообщение от Strannik_san Посмотреть сообщение
Главное исключить русские символы в верхнем и нижнем регистре.
Вот такой шаблон
VB.NET
1
2
3
4
5
6
7
8
9
10
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Str As String = "ABCфычс м98с 123.- rt"
        Dim Reg As New Regex("[^А-Яа-яЁё]")
        Dim B1 As MatchCollection = Reg.Matches(Str)
        Dim res As String
        For i = 0 To B1.Count - 1
            res &= B1.Item(i).ToString
        Next
        TextBox1.Text = res
    End Sub
и сделайте импорт
VB.NET
1
Imports System.Text.RegularExpressions
1
3267 / 3332 / 558
Регистрация: 17.02.2019
Сообщений: 5,234
04.10.2024, 20:50
Strannik_san, моно ещё так, строка пришла, циклом удаляем буквы(можно брать из массива Char или String) какие надо. Например: Replace и потом выводить добавлять в TextBox.
0
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
04.10.2024, 21:28  [ТС]
Тим70, Вот здесь я так понимаю
VB.NET
1
Dim Reg As New Regex("[^А-Яа-яЁё]")
вводится фильтр.А если надо допустим исключить ещё и те символы которые есть в фильтре?Допустим скобки(круглые и квадратные) и кавычки.

Добавлено через 37 секунд
January29, Можете показать пример?
0
Любитель
 Аватар для Тим70
1047 / 757 / 161
Регистрация: 27.01.2019
Сообщений: 1,531
04.10.2024, 21:48
Strannik_san, Попробуйте так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Str As String = "ABCфычс м98с 123.- (r)[t}][q]"
        Dim Reg As New Regex("[^А-Яа-яЁё()\[\]]")
        Dim B1 As MatchCollection = Reg.Matches(Str)
        Dim res As String
        For i = 0 To B1.Count - 1
            res &= B1.Item(i).ToString
        Next
        res = res.Replace(Chr(34), "") ' удаляем кавычки
        TextBox1.Text = res
    End Sub
1
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
04.10.2024, 21:57
Так будет более правильно (ранее предложенного)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Private Sub Button02_Click(sender As Object, e As EventArgs) Handles Button02.Click
    Dim text As String = "Аa 125й сСС ууу 55"
    Dim filter As String = "А5йс"
    Dim ct = text.ToCharArray
    Dim cf = filter.ToCharArray
    For Each cff As Char In cf
        ct = (From s In ct Where s <> cff Select s).ToArray
    Next
    TextBox1.Text = String.Concat(Of Char)(ct)
    'результат "a 12 CC yyy "
End Sub
2
Любитель
 Аватар для Тим70
1047 / 757 / 161
Регистрация: 27.01.2019
Сообщений: 1,531
04.10.2024, 21:58
И если извесно ,что надо оставить,может проще прописать такой шаблон?Покажите что есть и что надо получить.
0
3267 / 3332 / 558
Регистрация: 17.02.2019
Сообщений: 5,234
04.10.2024, 22:01
Цитата Сообщение от Strannik_san Посмотреть сообщение
Можете показать пример?
чет такого
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim l As String = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ" ' что удаляем
Dim a As String = "ПHрeиlвlеoт WМoиrрd " ' строка для удаления
Dim newline = ""
 
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
    For ll = 0 To l.Length - 1
        a = a.Replace(l(ll), "").Replace(l(ll).ToString.ToLower, "") ' (a) можно выводить или сразу в TextBox
    Next
 
    '' ИЛИ
    'Dim Delete As String = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбю"
    'Dim OkLine As String = "ПHрeиlвlеoт WМoиrрd"
    'For ll = 0 To Delete.Length - 1
    '    OkLine = OkLine.Replace(Delete(ll), "") ' OkLine можно выводить или сразу в TextBox
    'Next
 
End Sub
2
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
04.10.2024, 22:45  [ТС]
Тим70, Вот исходные данные и что надо получить.
Миниатюры
Запрет отображения символов кроме указанных в TextBox  
0
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
04.10.2024, 22:46  [ТС]
Тим70, В исходных данных может быть всё что угодно.Чуть ли не вся раскладка клавиатуры.
0
Любитель
 Аватар для Тим70
1047 / 757 / 161
Регистрация: 27.01.2019
Сообщений: 1,531
05.10.2024, 06:23
Лучший ответ Сообщение было отмечено Strannik_san как решение

Решение

Strannik_san, Тогда попробуйте такой шаблон
VB.NET
1
 Dim Reg As New Regex("[A-Za-z0-9 ]")
Он оставляет латинские символы,цифры и пробеллы.

Добавлено через 27 минут
Хотя так наверное лучше
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Str As String = "ABCфычс м98с 123.- (r) [t}][q]7"
        Dim Reg As New Regex("[A-Za-z0-9]")
        Dim B1 As MatchCollection = Reg.Matches(Str)
        Dim resS, resC, res As String
        For Each q In B1
            If Not IsNumeric(q.ToString) Then
                resS &= q.ToString ' Cобираем символы
            Else
                resC &= q.ToString ' Собираем цифры
            End If
        Next
        res = resC & " " & resS
        TextBox1.Text = res
    End Sub
2
3267 / 3332 / 558
Регистрация: 17.02.2019
Сообщений: 5,234
05.10.2024, 14:44
Strannik_san, может подойдет
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ' приходящая строка
    Dim mytext = TextBox1.Text
    ' удаляем буковки
    Dim textRegexReplace As String = Regex.Replace(mytext, "[А-Яа-яЁё]", "")
    ' выковыриваем цифры
    Dim textDigit = String.Concat(textRegexReplace.Where(AddressOf Char.IsDigit))
    ' выковыриваем буквы
    Dim textLetter = String.Concat(textRegexReplace.Where(AddressOf Char.IsLetter))
 
    TextBox2.Text = textDigit & " " & textLetter
End Sub
Ну вот из скрина поста 12 из строки
р+п=дщр8кпсс(9ФЕЗАрЧП: цАB23opE"папБа.(((741ФФФолш" гдоIрпаvрк8укX}}}gy-:25&#a\\1рГррлpnov4
слово Ivanov не получится
0
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
05.10.2024, 14:50  [ТС]
January29, gy это в каждой строчке приходящих данных.Эти две буквы и и расположение в строке не меняются. Остальные буквы русские. За исключением букв Ivanov
0
3267 / 3332 / 558
Регистрация: 17.02.2019
Сообщений: 5,234
05.10.2024, 15:00
Strannik_san, а это гдоIрпаvрк8укX}}} до gy, там тоже есть не русские
0
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
05.10.2024, 15:04  [ТС]
January29, Все кроме I , вторая v
0
3267 / 3332 / 558
Регистрация: 17.02.2019
Сообщений: 5,234
05.10.2024, 15:26
Strannik_san, значит gy не брать в счет?

Добавлено через 17 минут
Ну если без gy, а то выползает Ivgyanov
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ' приходящая строка
    Dim mytext = TextBox1.Text
    ' удаляем буковки
    Dim textRegexReplace As String = Regex.Replace(mytext, "[А-Яа-яЁё]", "").Replace("gy", "")
    ' выковыриваем цифры
    Dim textDigit = String.Concat(textRegexReplace.Where(AddressOf Char.IsDigit))
    ' выковыриваем буквы
    Dim textLetter = String.Concat(textRegexReplace.Where(AddressOf Char.IsLetter))
 
    TextBox2.Text = textDigit & " " & textLetter
End Sub
1
 Аватар для Strannik_san
7 / 7 / 0
Регистрация: 07.09.2019
Сообщений: 207
05.10.2024, 15:29  [ТС]
January29, Да не брать. Я хотел когда получаю английское слово gy отсеивать по фильтру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2024, 15:29

Запрет символов кроме точки
Как запретить символы кроме точки и что бы точку можно было ввести всего один раз. Это на запрет на символы кроме точки, но как...

Запрет ввода символов кроме. в TEdit
Ребят, есть такая процедура: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not CharInSet (Key, ) then...

Запрет ввода символов в едит, кроме комы
вот есть код который запрещает ввод символов в едит кроме комы void __fastcall TForm3::Edit1KeyPress(TObject *Sender, char &amp;Key) { ...

Запрет на ввод любых символов, кроме цифр
Есть ли в свойствах Edit нечто такое, что разрешит вводить в нём только цифры? И если нету, то как по-другому сделать так, чтобы...

Запрет на ввод символов кроме цифр в DataGrid
Доброго времени суток! Хотелось бы узнать, возможно ли как-то запретить в определенную колонку DataGrid'a вводить буквы и прочие символы,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru