Obliger saisis entre 1 et 2000 dans une textbox

Résolu
Signaler
-
 mirsa57 -
Bonjours/Bonsoirs

Je suis un débutant sur Microsoft visual basic, j'y connais rien et je bloque dans la création d'un projet.

J'ai une trackbar et une textbox, le texte de la textbox change en fonction de la valeur de la trackbar.
Et je voudrais le contraire aussi, que la valeur de la trackbar change en fonction de la textbox.
L'erreur vient là, si on saisis dan la textbox autre chose que la valeur min et max de la trackbar tout bug.

En cherchant sur ce site j'ai trouver ces code :

J'ai supprimer le clavier alphabétique avec ce code :
If IsNumeric(e.KeyChar) False Then e.Handled True

Le problème c'est que l'on ne peut plus utiliser la touche DEL

Alors j'ai essayé cet autre code :
 If InStr("1234567890", (e.KeyChar)) = 0 Then
            e.Handled = True
        Else : e.Handled = False
        End If

Le problème cette fois c'est que je ne sais pas comment autoriser la touche DEL

Sinon pour une valeur min et max à saisir dans la textbox j'ai trouver ce code :
  Dim val As Integer = Convert.ToInt32(TextBox2.Text)
        If (val < 1) Or (val > 2000) Then Exit Sub


Mais j'ai un autre problème si l'on supprime tout dans la textbox (que l'on met le champ vide)ça bug aussi étant donner que la trackbar ne sais plus quoi faire


Merci de lire et à ceux qui m'aideront,

Voici tout le code, si ça peut aider :
Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub
  

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        TextBox1.Clear()
        TextBox1.Focus()
    End Sub

    Private Sub TrackBar1_Scroll(sender As System.Object, e As System.EventArgs) Handles TrackBar1.Scroll
        If TrackBar1.Value = 0 Then
            TextBox2.Text = "1"
        Else
            TextBox2.Text = TrackBar1.Value
        End If
    End Sub

    Private Sub TextBox2_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        If IsNumeric(e.KeyChar) False Then e.Handled True

    End Sub


    Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
        Dim val As Integer = Convert.ToInt32(TextBox2.Text)
        If (val < 1) Or (val > 2000) Then Exit Sub


        TrackBar1.Value = TextBox2.Text

    End Sub

End Class

1 réponse

Désolé du double poste mais j'ai pas trouvé le bouton "Éditer"

C'est juste pour dire que j'ai résolu ce problème :
Mais j'ai un autre problème si l'on supprime tout dans la textbox (que l'on met le champ vide)ça bug aussi étant donner que la trackbar ne sais plus quoi faire


J'avais juste à réfléchir un peu pour penser à ce code
  Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
        If TextBox2.Text = "" Then
            TrackBar1.Value = 1
            TextBox2.Text = "1"
        End If


Je suis bête de pas y avoir pensé avant c'est tout simple en plus !