Problème de contrainte d'un TextBox
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:
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:
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:
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:
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