Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
1 / -2 / 0
Регистрация: 28.11.2016
Сообщений: 65
1

Запрет ввода в TextBox определенных символов

28.02.2017, 14:17. Показов 3384. Ответов 14
Метки нет (Все метки)

В общем проблема такая, пол дня уже пытаюсь выполнить небольшое задание...
Нужно поставить защиту от всех букв и цифр кроме цифр "1,2,3,4,5" и BackSpace.
По логик я понимаю как это сделать, но вот скомпоновать(добавить к этому коду фильтр) я не могу, уже по разному пробовал...
HELP))
MS Visual Studio Basic 2015

VB.NET
1
2
3
4
5
6
If TextBox1.TextLength()  >= 1 Then
 
            MsgBox("Введите цифру от 1 до 5!!!", MsgBoxStyle.Critical)
                e.Handled = True
 
        End If
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2017, 14:17
Ответы с готовыми решениями:

Запрет ввода определенных символов в TextBox
Пожалуйста помогите как написат программу чтобы в текстбоксе нельзя было бы ставить 1)ПРОБЕЛ,...

Запрет ввода определенных символов в TextBox
Подскажите пожалуйста как с делать так чтобы при выборе в numericUpDown цифры 2 в textBox можно...

Запрет ввода определенных символов в TextBox
Можно ли в каком-то свойстве текстбокса выбрать тип вводимых данных? Т.е., допустим текстбокс нужен...

Запрет ввода определенных символов в Edit
Я искал на форуме и в гугле, нашел разные варианты, но не нашел который мне бы подошел... Ведь у...

14
es geht mir gut
11480 / 4711 / 1180
Регистрация: 27.07.2011
Сообщений: 11,431
28.02.2017, 14:43 2
Используйте NumericUpDown вместо TextBох-a
0
oh my god
1444 / 783 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
28.02.2017, 14:46 3
Просто пять кнопок с надписью 1,2,3,4,5 всё, лишнее не напишешь
0
es geht mir gut
11480 / 4711 / 1180
Регистрация: 27.07.2011
Сообщений: 11,431
28.02.2017, 14:50 4
Лучший ответ Сообщение было отмечено GTRka как решение

Решение

Вариант
VB.NET
1
2
3
4
5
6
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Select Case Asc(e.KeyChar)
            Case 49 To 53, 8
            Case Else : e.KeyChar = ""
        End Select
    End Sub
1
oh my god
1444 / 783 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
28.02.2017, 14:50 5
Вариант
0
Миниатюры
Запрет ввода в TextBox определенных символов  
1 / -2 / 0
Регистрация: 28.11.2016
Сообщений: 65
28.02.2017, 15:03  [ТС] 6
Спасибо ребят!!!))
0
es geht mir gut
11480 / 4711 / 1180
Регистрация: 27.07.2011
Сообщений: 11,431
28.02.2017, 15:07 7
Цитата Сообщение от fever brain Посмотреть сообщение
Вариант
А BackSpace ?
0
1 / -2 / 0
Регистрация: 28.11.2016
Сообщений: 65
28.02.2017, 15:12  [ТС] 8
С кнопками вариант, не очень подходит т.к. мне нужно тест сделать, и на против вопроса(а их 15) поставить балл, и в итоге подсчитать их сумму))Осталось подсчитать сумму и вывести
0
es geht mir gut
11480 / 4711 / 1180
Регистрация: 27.07.2011
Сообщений: 11,431
28.02.2017, 15:15 9
У Вас 15 текстбоксов с баллами?
0
1 / -2 / 0
Регистрация: 28.11.2016
Сообщений: 65
28.02.2017, 15:18  [ТС] 10
вот))
0
Миниатюры
Запрет ввода в TextBox определенных символов  
es geht mir gut
11480 / 4711 / 1180
Регистрация: 27.07.2011
Сообщений: 11,431
28.02.2017, 15:39 11
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Если текстбоксы имеют имена TextBox1, TextBox2, TextBox3 .....TextBox15 , то можно сделать примерно так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    'Процедура проверки корректности ввода
    Private Sub CheckValue(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Len(sender.text) > 0 Then e.KeyChar = "" : Exit Sub
        Select Case Asc(e.KeyChar)
            Case 49 To 53, 8
            Case Else : e.KeyChar = ""
        End Select
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 1 To 15 'Подписываем текстбоксы на процедуру проверки
            AddHandler Me.Controls("TextBox" & i.ToString).KeyPress, AddressOf CheckValue
        Next
    End Sub
 
    'Кнопка подсчета суммы баллов
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sum As Integer = 0
        For i As Integer = 1 To 15
            If Val(Me.Controls("TextBox" & i.ToString).Text) = 0 Then
                MsgBox("Заполните поле №" & i.ToString)
                Exit Sub
            Else
                sum += Val(Me.Controls("TextBox" & i.ToString).Text)
            End If
        Next
        MsgBox(sum.ToString)
    End Sub
2
1 / -2 / 0
Регистрация: 28.11.2016
Сообщений: 65
28.02.2017, 15:50  [ТС] 12

Если честно, не думал что мне вообще тут кто нибудь ответит)))
Спасибо, очень помог!!!!!!))))
0
Модератор
Эксперт .NET
3259 / 2925 / 449
Регистрация: 27.01.2014
Сообщений: 5,408
28.02.2017, 17:26 13
GTRka, по мне, так ненужно использовать тут текстбоксы, для этого есть ComboBox (выпадающее меню) в котором размещаете все варианты ответов на вопрос и исплючая тем самым ошибаи ввода и простоту обработки данных.
0
1396 / 1301 / 300
Регистрация: 03.10.2012
Сообщений: 1,360
28.02.2017, 18:02 14
SoftIce, Позвольте чуть подправить, потому что так не будет работать BackSpace
VB.NET
1
2
3
4
5
6
7
8
Private Sub CheckValue(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        Select Case Asc(e.KeyChar)
            Case 49 To 53
                If Len(sender.text) > 0 Then e.KeyChar = "" : Exit Sub
            Case 8
            Case Else : e.KeyChar = ""
        End Select
    End Sub
2
1 / -2 / 0
Регистрация: 28.11.2016
Сообщений: 65
28.02.2017, 18:24  [ТС] 15
MrCrown, Спасибо!))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2017, 18:24

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Запрет ввода определенных символов в dataGridView
У меня есть таблица. Хочу чтобы кроме цифр и запятой вводить в ячейки ничего нельзя было. Кто...

Запрет ввода определённых символов в scanf
всем привет, я тут впервые так что не пинайте за может глупые на ваш взгляд вопросы. я только...

Запрет ввода определенных символов в dbgrid
Добрый вечер! Ввожу данные непосредственно dbgrid, как мне запретить ввод знаков кроме чисел в...

Запрет ввода определенных символов (перевод с Delphi)
Доброго времени суток!!! Ребята помогите перевести код с Дэлфы на C++...Пишу Курсач и мне осталось...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.