Private Sub textbox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged Dim int As Integer TextBox1.MaxLength = 2 Int32.TryParse(TextBox1.Text, int) If (int > 10 Or int < 20) Then MsgBox("tout est ok") Else TextBox1.Focus() MsgBox(“veuillez saisir un chiffre entre 10 et 20”) End If End Sub End Clas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim int As Integer TextBox1.MaxLength = 2'ça n'a rien à faire là, tu peux le mettre dans la fenêtre propriété en mode design, ou encore dans l'évènement Load. Ici ça sera répété à chaque saisie alors qu'un fois pour toute suffit. Int32.TryParse(TextBox1.Text, int)'ça c'est bien, tu testes si l'opérateur à tapé un nombre, mais s'il a écrit une lettre tu continues ton code, pas logique. int vaudra 0 donc sera rejeté, mais la logique voudrais que tu regardes le résultat du TryParse. If (int > 10 Or int < 20) Then' et si je suis en train de tapper 12 qui est compris dans l'intervalle, mais que à l'instant ou on parle, j'ai juste tapé le 1, ça va me mettre un message d'erreur, sans même me laisser ma chance de bien faire. Moi utilisateur, ça va m'énerver. MsgBox("tout est ok") Else TextBox1.Focus() MsgBox(“veuillez saisir un chiffre entre 10 et 20”) End If
Dim int As Integer Dim resultat As Boolean = Int32.TryParse(MTotalOut.Text, int) If TextBox1.Text = "1" OrElse TextBox1.Text = "2" Then 'on ne fait rien on lui laisse sa chance à l'utilisateur ElseIf resultat = True AndAlso int > 10 AndAlso int < 20 Then 'sinon on regarde s'il a bien tappé un nombre et <souligne>si et seulement si (andalso)</souligne> oui on teste l'intervalle MessageBox.Show("OK") Else 'et sinon c'est pas bien MessageBox.Show("Non") End If