Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
.NET 4.x

Применение функции для валидации введенных данных в элементы

21.10.2014, 22:21. Показов 1573. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, нашел за бугром интересную как мне кажется функцию.
Но не пойму что нужно сделать, чтобы она заработала.
ErrorProvider1 закинул.
Закинул парочку текстбоксов и кнопку, которая берёт текст из текстбоксов.
Дальше что, как запустить валидацию?

Код:
VB.NET
1
2
3
4
5
6
7
Private Sub TextBox_Validating( sender As System.Object,  e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating, TextBox2.Validating
        Dim ctl As Control = CType(sender, Control)
        If ctl.Text = ""
            e.Cancel = True
            ErrorProvider1.SetError(ctl,"Please enter a value")
        End If
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2014, 22:21
Ответы с готовыми решениями:

Применение стиля на форме валидации (css in js)
вот так стиль обозначенный в файле *.css, работает. label.error{ width: 100%; display: block; /*Элемент генерирует...

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

Составить макет данных и написать программу для ввода и реализации печати введенных данных для платёжной ведомости
1. Составить макет данных и написать программу для ввода и реализации печати введенных данных для платёжной ведомости -...

9
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.10.2014, 06:12
Ну, лучше наверно так
VB.NET
1
2
3
4
5
6
7
8
        Dim ctl As Control = CType(sender, Control)
        If ctl.Text = "" Then
            e.Cancel = True
            ErrorProvider1.SetError(ctl, "Please enter a value")
        Else
            ErrorProvider1.Clear()
        End If
    End Sub
Код рабочий, иконка мигает, курсор из TextBox не выпускает

Чтобы этот код работал, нужно закинуть на форму ErrorProvider
Ну и иметь два поля TextBox1 и TextBox2
2
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
22.10.2014, 11:07  [ТС]
Памирыч, ErrorProvider сейчас срабатывает, если скажем на текстбокс кликнуть, ничего в него не ввести и попытаться кликнуть на другой текстбокс.
А можно ли сделать так, чтобы он срабатывал еще и при нажатии на кнопку?
Т.е. я нажимаю кнопку, которая берет текст из текстбоксов и если текста в текстбоксах нет, то хотелось бы чтобы тоже срабатывал ErrorProvider.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
27.10.2014, 23:31
Дядя Корней, попробуй к своей кнопке привязать следующее:

VB.NET
1
2
On error resume next
call TextBox_Validating(sender, e)
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
28.10.2014, 15:23  [ТС]
Yury Komar, при таком варианте код который в кнопке программа его перепрыгивает в самый низ, там у меня MsgBox("Обработка завершена")
Собственно появляется окно, что обработка завершена и всё, хотя программа ничего не делала, т.к. код был пропущен. Но вылет программы пропал. До этого она вылетала, т.к. данных в текстбоксе нет и возникает индекс вне границ что-то там.

В общем вопрос остается актуальным.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
31.10.2014, 19:17
Дядя Корней, а почему условием if...then...else не воспользоваться? Пусть пускает ErrorProvider при условии если какой либо из перечисленных в if текст бок не содержит текста?
0
 Аватар для Hemicide
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
31.10.2014, 22:32
Лучший ответ Сообщение было отмечено Дядя Корней как решение

Решение

Дядя Корней, а если подойти по другому?
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
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ErrorProvider1.BlinkRate = 0
        ErrorProvider1.BlinkStyle = ErrorBlinkStyle.NeverBlink
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        ErrorProvider1.Clear()
        Call ValidatingControls(TextBox1)
        Call ValidatingControls(TextBox2)
    End Sub
 
    Private Sub ValidatingControls(ByVal sender As Control)
 
        Dim ctl As Control = CType(sender, Control)
        If ctl.Text = "" Then
            ErrorProvider1.SetError(ctl, "Please enter a value")
        End If
    End Sub
 
End Class
2
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
01.11.2014, 11:36  [ТС]
Hemicide, так работает, но в таком случае программа ждет пока я введу данные в эти текстбоксы и не дает скажем нажать другую кнопку. Поставленную задачу это решает, но...
К примеру, если в эти текстбоксы подгружается путь до файла из OpenDialog, то не получится уже нажать кнопку вызова диалога и придется путь в текстбокс писать ручками.
0
 Аватар для Hemicide
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
01.11.2014, 14:15
Дядя Корней, у меня всё работает, и с присваиванием текста TextBox'у и с открытием диалога...
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
01.11.2014, 15:14
Hemicide, а теоретически должно как сказал Корней

Добавлено через 3 минуты
Hemicide, возможно что ты вызываешь диалог до строки
VB.NET
1
Call ValidatingControls()
, тогда да... после ввода пути с помощью Диалога, текст устанавливается и происходит проверка. Текст есть - ошибки нет... только так...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2014, 15:14
Помогаю со студенческими работами здесь

Аналог функции strlen (проверка длины введённых данных)
Здравствуйте, подскажите пожалуйста есть ли аналог функции strlen в С#?И\или как еще можно проверить введ. данные на "длину"? ...

Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных?
Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных? никак не вкурю,что бы это...

Применение нескольких checkbox к datagrid для фильтрации данных
Есть 2 чекбокса, чекбокс1 = Имя1, чекбокс2 = Имя1. В датагрид данные идут и бд. Если я нажимаю на чекбокс1, то в датагрид фильтруется и...

Применение функции substring для подстрок переменной длины в Transact-SQL
Добрый день! Помогите, пожалуйста, разобраться с синтаксисом функции substring для подстрок переменной длины в Transact-SQL. Исходные...

Вычислить значения функции для введенных значений аргумента
розработать программу которая обращается к человеку для ввода нескольких чисел! чтобы пограмма обращалась до тех пор пока не выпадет 0. и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru