Bonjour à tous et à toutes,


J'ai un problème avec la contrainte d'un TextBox, je veux qu'il soit numérique, et inférieur à 60 et supérieur à 0, mais le soucis, c'est que lorsque l'on tape un chiffre supérieur ou égale à 100 (maxlenght = 3 ou sup), mon message d'erreur n'est pas affiché, est le TextBox est validé.

Le code est :

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
Private Sub TextBox_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox.Validated
 
        If Not IsNumeric(TextBox.Text) Or TextBox.Text = "0" Or TextBox.Text > "60" Then
            TextBox.BackColor = Color.Red
            MessageBox.Show("Veuillez vérifier la valeur !" & System.Environment.NewLine & "Valeur Numérique obligatoire et différente de ""0"" et inférieur à ""60 mm"" !", _
                       "Erreur de saisie", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox.Text = "0"
            TextBox.Select()
            Exit Sub
        Else
            TextBox.BackColor = Color.LightGreen
            VariableTextBox = CSng(TextBox.Text)
            TamponTextBox = TextBox.Text
        End If
 
 
    End Sub

J'ai essayé de le restreindre avec la Longueur Max du TextBox, mais dans ce cas la plus rien ne marche ...

Voici le code testé :

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
Private Sub TextBox_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox.Validated
 
        If Not IsNumeric(TextBox.Text) Or TextBox.Text = "0" Or TextBox.Text > "60" Or TextBox.MaxLenght > 2 Then
            TextBox.BackColor = Color.Red
            MessageBox.Show("Veuillez vérifier la valeur!" & System.Environment.NewLine & "Valeur Numérique obligatoire et différente de ""0"" et inférieur à ""60 mm"" !", _
                       "Erreur de saisie", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox.Text = "0"
            TextBox.Select()
            Exit Sub
        Else
            TextBox.BackColor = Color.LightGreen
            VariableTextBox = CSng(TextBox.Text)
            TamponTextBox = TextBox.Text
        End If
 
 
    End Sub
J'ai aussi essayé de créer un intervalle, mais là, tout est accepté...



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
Private Sub TextBox_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox.Validated
 
        If Not IsNumeric(TextBox.Text) Or TextBox.Text = "0" Or TextBox.Text > "60" And TextBox.Text < "1000000000" Then
            TextBox.BackColor = Color.Red
            MessageBox.Show("Veuillez vérifier la valeur!" & System.Environment.NewLine & "Valeur Numérique obligatoire et différente de ""0"" et inférieur à ""60 mm"" !", _
                       "Erreur de saisie", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox.Text = "0"
            TextBox.Select()
            Exit Sub
        Else
            TextBox.BackColor = Color.LightGreen
            VariableTextBox = CSng(TextBox.Text)
            TamponTextBox = TextBox.Text
        End If
 
 
    End Sub

Je n'arrive pas a trouver l'erreur qui fait que ça ne marche pas...

J'avais le même soucis sur un autre TextBox, il devais être supérieur ou égal à 10, et j'ai pu le résoudre de cette façon :

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
 Private Sub TextBox2_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Validated
 
        If TextBox2.Text = "0" Or TextBox2.Text = "1" Or TextBox2.Text = "2" Or TextBox2.Text = "3" Or TextBox2.Text = "4" _
            Or TextBox2.Text = "5" Or TextBox2.Text = "6" Or TextBox2= "7" Or TextBox2.Text = "9" _
            Or TextBox2.Text = "9" Or Not IsNumeric(TextBox2.Text) Then
            TextBox2.BackColor = Color.Red
            MessageBox.Show("Veuillez vérifier ""Epmin"" !" & System.Environment.NewLine & "Valeur Numérique obligatoire et supérieur à ""10 mm"" !", _
                       "Erreur de saisie", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox2.Text = "10"
            TextBox2.Select()
            Exit Sub
        Else
            TextBox2.BackColor = Color.LightGreen
            VariableTextBox2 = CSng(TextBox2.Text)
        End If
 
 
        If TextBox2.Text = "0" Then
            TextBox2.BackColor = Color.Orange
        End If
        TamponTextBox2 = TextBox2.Text
J'ai du rentrer toutes les valeurs qui cause l'erreur. Il n'y a pas de moyens plus rapides ?


Cordialement,
Bacube