N'accepter que des nombres positifs (hormis 0) dans une textbox ?

cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 29 oct. 2011 à 15:27
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 4 nov. 2011 à 15:15
Bonjour,
J'ai un petit problème, je travaille avec Vb2010 et j'ai mis sur ma form deux boutons et une textbox.
la valeur initiale de la textbox est 1
dans les propriétés de la textbox , j'ai mis enabled=false pour que l'on n'y touche pas.
Quand on appuie sur le bouton 1, la textbox incrémente de 1 (+1)
et si on appuie sur le bouton 2 , la textbox décrément de 1 (-1)

Mais si on appuie plusieures fois sur le bouton 2, un 0 et des nombres négatifs apparaissent.
Je ne veux pas avoir la valeur 0 ou une valeur négative, (la valeur de la textbox est l'interval d'un timer).

Pourriez vous m'aider à résoudre ce probleme ?
Merci de votre compréhension et bonne journée
Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb.net

12 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 oct. 2011 à 15:52
Bonjour,

Regardes le composant NumericUpDown, je pense que c'est ce que tu recherhces.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 1
29 oct. 2011 à 16:03
Merci mais un probleme, il y a un "0".
De plus ,si je voulais travailler en millisecondes donc j'ai ajouté 4 autres boutons (2 qui augmentent/reduisent de 10 ms et 2 qui augmentent/réduisent de 100 ms )
Merci de votre réponse et a bientôt

Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
0
farrakis Messages postés 32 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 12 mai 2013
29 oct. 2011 à 16:04
Pourquoi ne pas faire un test dans la procédure qui "décrémente" ton textbox.

i = i+1
if i<=0 then i=1
0
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 1
29 oct. 2011 à 16:15
Bonjour farrakis. J'ai trouvé la solution, j'ai fait un code a peu pres pareil au votre:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If TextBox1.Text <= 1 Then
            Button1.Enabled = False
            Button2.Enabled = False
            Button3.Enabled = False
            TextBox1.Text = "1"
        Else
            Button1.Enabled = True
            Button2.Enabled = True
            Button3.Enabled = True
        End If


Qui permet de griser les boutons quand la " textbox<=1 "et qui la remet a 1
(par exemple si on appuie sur -100 cela fera -99).
Pour l'instant ça marche mais je me demande si le timer va être plus rapide
ex: on appuie sur -100 quand la textbox est a 1. cela donnera -99 puis cela remettra la valeur a 1 [voir code] mais est-ce que le timer va aller plus vite que le calcul (qu’il prenne -99 ?))

Merci de me répondre
Cordialement, Weathley


**********************************************************
Apprenti codeur en Vb
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 oct. 2011 à 17:47
Bonjour,

Actives Option Strict (propriétés du projet) et corriges les erreurs.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 1
29 oct. 2011 à 17:51
Activer option strict de quel objet ? et a quoi cette propriété sert ? merci de me répondre et bonne journée.


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 oct. 2011 à 18:00
Bonjour,

Option Strict te force à typer correctement tes variables.
Ça interdit le transtypage (changement de type) implicite.

Cette "option" (entre " car au vu de son utilité, ce n'est pas vraiment une option) te permettra de coder proprement.

Pour l'activer, regardes dans les propriétés du projet.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 1
29 oct. 2011 à 18:37
dès que j'ecris
Option Strict On

ceci , tous mes textbox sont soulignés ? comment faire ? merci

voici mon code :
Option Strict On
Public Class Form1
    Private Sub ButtonM10000_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonM10000.Click
        TextBox1.Text = TextBox1.Text - 10000
    End Sub
    Private Sub ButtonM1000_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonM1000.Click
        TextBox1.Text = TextBox1.Text - 1000
    End Sub

    Private Sub ButtonM100_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonM100.Click
        TextBox1.Text = TextBox1.Text - 100
    End Sub

    Private Sub ButtonM10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonM10.Click
        TextBox1.Text = TextBox1.Text - 10
    End Sub

    Private Sub ButtonM1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonM1.Click
        TextBox1.Text = TextBox1.Text - 1
    End Sub

    Private Sub ButtonP1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonP1.Click
        TextBox1.Text = TextBox1.Text + 1
    End Sub

    Private Sub ButtonP10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonP10.Click
        TextBox1.Text = TextBox1.Text + 10
    End Sub

    Private Sub ButtonP100_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonP100.Click
        TextBox1.Text = TextBox1.Text + 100
    End Sub

    Private Sub ButtonP1000_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonP1000.Click
        TextBox1.Text = TextBox1.Text + 1000
    End Sub
    Private Sub ButtonP10000_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonP10000.Click
        TextBox1.Text = TextBox1.Text + 10000
    End Sub
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If TextBox1.Text <= 1 Then
            TextBox1.Text = "1"
            ButtonM1.Enabled = False
            ButtonM10.Enabled = False
            ButtonM100.Enabled = False
            ButtonM1000.Enabled = False
            ButtonM10000.Enabled = False
        Else
            ButtonM1.Enabled = True
            ButtonM10.Enabled = True
            ButtonM100.Enabled = True
            ButtonM1000.Enabled = True
            ButtonM10000.Enabled = True
        End If
        If TextBox1.Text >= 100000 Then
            TextBox1.Text = "100000"
            ButtonP1.Enabled = False
            ButtonP10.Enabled = False
            ButtonP100.Enabled = False
            ButtonP1000.Enabled = False
            ButtonP10000.Enabled = False
        Else
            ButtonP1.Enabled = True
            ButtonP10.Enabled = True
            ButtonP100.Enabled = True
            ButtonP1000.Enabled = True
            ButtonP10000.Enabled = True
        End If
        Label1.Text = "Les messages seront postés toutes les " & TextBox1.Text.ToString & " millisecondes" & vbNewLine & " (Toutes les " & TextBox1.Text / 1000 & " secondes)"
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Enabled = False
        ButtonStop.Enabled = False
        Label1.Text = "Les messages seront postés toutes les " & TextBox1.Text.ToString & " millisecondes" & vbNewLine & " (Toutes les " & TextBox1.Text / 1000 & " secondes)"
    End Sub

    Private Sub ButtonMin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonMin.Click
        TextBox1.Text = "1"
    End Sub

    Private Sub ButtonMax_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonMax.Click
        TextBox1.Text = "100000"
    End Sub

    Private Sub ButtonStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStart.Click
        TextBoxTxt.Enabled = False
        ButtonStart.Enabled = False
        ButtonStop.Enabled = True
        TimerSpam.Start()
    End Sub

    Private Sub ButtonStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStop.Click
        TextBoxTxt.Enabled = True
        ButtonStart.Enabled = True
        ButtonStop.Enabled = False
        TimerSpam.Stop()
    End Sub


    Private Sub TimerSpam_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerSpam.Tick
        TimerSpam.Interval = TextBox1.Text
    End Sub
End Class


et ma form:
Erreur
Form

J'essaie de faire un spammeur , pour tester les sendkeys et les textbox a boutons(comme ce probleme)



Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
0
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 1
29 oct. 2011 à 18:39
Ps: je tiens a préciser qu'avant Option explicit On, tout allait bien.
J'ai toujours fait comme ça, mais si vous me corrigez, ce sera mieux pour mon apprentissage en vb


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 oct. 2011 à 18:56
J'essaie de faire un spammeur , pour tester les sendkeys et les textbox a boutons(comme ce probleme)

Ah bon !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 oct. 2011 à 20:52
Bonjour,

TextBox1.Text = TextBox1.Text - 10000
TextBox.Text est une String, donc, il faut faire :
TextBox1.Text = (Integer.Parse(TextBox1.Text) - 10000).ToString()


---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_Weathley Messages postés 73 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 12 décembre 2011 1
4 nov. 2011 à 15:15
Merci pour la réponse Mr NHenry.

J'essaie de faire un spammeur , pour tester les sendkeys et les textbox a boutons(comme ce probleme)


Ah bon !

héhé :)

Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
0
Rejoignez-nous