1 Востаннє редагувалося Юрій_ (17.06.2018 18:37:39)

Тема: Перевірка на заповнення поля на формі

Добрий день.
На формі є поля для обов`язкового  заполнення. Але  в процесі роботы можливе не заповнення деяких  полів  ( textBox2,3.)
Як підкоректувати код ,щоб не відображалось  повідомлення, что не всі поля заполнені.
Прикладаю файл . Проект на visual Basic 2010 Express.

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim X As Object
        For Each X In Controls
            If TypeOf X Is TextBox Or TypeOf X Is ComboBox Then
                If X.Value = "" And X.BackColor = Color.Window Then
                    MsgBox("Всі обовязкові поля повинні бути заполнені!", vbExclamation, "Повідомлення!")
                    Exit Sub
                End If
            End If
        Next
        MsgBox("Всі Обов`язкові поля  заповнені!", vbExclamation, "Повідомлення")
    End Sub
End Class
Post's attachments

перевірка.rar 73.8 kb, 59 downloads since 2018-06-17 

2

Re: Перевірка на заповнення поля на формі

В ідеалі потрібно робити нащадків для Control'ів і додавати до них поля/властивості (наприклад властивість Required As Boolean), в дизайнері у властивостях встановлювати True або залинати False і потім в вашому циклі перевіряти значення цієї властивості.

Або зберігати в формі масив елементів Control'ів, які обов'язково заповнювати. Якось так можна

Public Class Form1
    Private ReadOnly RequiredControls() As Control

    Public Sub New()
        InitializeComponent()
        RequiredControls = {
            ComboBox_Product,
            TextBox_Count,
            ComboBox_Executor
        }
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Check.Click
        Dim X As Object
        For Each X In Controls
            If TypeOf X Is TextBox Or TypeOf X Is ComboBox Then
                If RequiredControls.Contains(X) And X.Text = "" Then
                    MsgBox("Всі обовязкові поля повинні бути заполнені!", vbExclamation, "Повідомлення!")
                    Exit Sub
                End If
            End If
        Next
        MsgBox("Всі Обов`язкові поля заповнені!", vbInformation, "Повідомлення")
    End Sub
End Class
Post's attachments

post_116915_answer.7z 7.56 kb, 60 downloads since 2018-06-18 

Подякували: Юрій_1

3

Re: Перевірка на заповнення поля на формі

leofun01,я вдячний  Вам за відповідь. Можете прокоментувати  ці рядки коду:

Private ReadOnly RequiredControls() As Control
 
    Public Sub New()
        InitializeComponent()
        RequiredControls = {
            ComboBox_Product,
            TextBox_Count,
            ComboBox_Executor
        }

4

Re: Перевірка на заповнення поля на формі

Юрій_ написав:
Можете прокоментувати ці рядки коду
:

Private ReadOnly RequiredControls() As Control
 
    Public Sub New()
        InitializeComponent()
        RequiredControls = {
            ComboBox_Product,
            TextBox_Count,
            ComboBox_Executor
        }

RequiredControls - це масив Control'ів, які необхідно заповнювати;
Sub New() - конструктор;
InitializeComponent() - викликається метод згенерований VisualStudio;
{ ComboBox_Product, TextBox_Count, ComboBox_Executor } - значення масиву;
ComboBox_Product, TextBox_Count, ComboBox_Executor : шукайте на формі елементи з цими назвами.

5

Re: Перевірка на заповнення поля на формі

Дякую.Буду вивчати :)