Bonjour,

J’aimerai que sur l’évènement closing d’une form, il y ait une vérification du contenu de certains contrôles . Sur le premier controle vide, messagebox, je peux le compléter...

Sur cet évènement, j’ai ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
If TestVide() = False Then
e.Cancel = True
Else
Me.Close()
End If
J’ai essayé ceci avec un tableau de contrôles :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function TestVide() As Boolean
 
        Dim Ctr(4) As Control
        Dim i As Integer
 
        TestVide = True
 
        Ctr(0) = ComboBox1
        Ctr(1) = TextBox1
        Ctr(2) = TextBox2
        Ctr(3) = ComboBox2
        Ctr(4) = TextBox3
 
        For i = 0 To 4
        	If Ctr(i).ToString.Length = 0 Or Ctr(i).Text = Nothing Then
        	MessageBox.Show("blablabla" & Ctr(i).Name, "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        	Ctr(i).Focus()
        	End If
        Next
 
        Return TestVide
 
End Function
Avec ce script, si par ex 2 contrôles sont vides, les messagebox s’affichent mais je ne peux pas retourner sur la form pour compléter les infos des contrôles.


J’ai essayé aussi avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function TestVide() As Boolean
 
        If Me.ComboBox1.Text = Nothing Then
            TestVide = False
            MessageBox.Show("blablablaComboBox1", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Me.ComboBox1.Focus()
        Else
            TestVide = True
        End If
 
        If Me.TextBox1.Text = Nothing Then
            TestVide = False
            MessageBox.Show("blablablaTextBox1", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Me.TextBox1.Focus()
        Else
            TestVide = True
        End If
 
End Function
Là je peux retourner compléter le contrôle s’il est vide mais au moment où la form se ferme, j’ai une exception stackoverflow.

Ça ne doit pas être bien compliquer mais je coince pour parvenir au résultat en utilisant le moins de ressources possibles (d’où le tableau de contrôles).