Clic multiples d'un button

galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016 - 15 mars 2015 à 14:37
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 15 mars 2015 à 22:20
Bonjour,
j'ai un button un textbox et 3 labels ce que je veux faire c'est quand je clic sur mon button :

- 1er clic :
Label1.Text = TextBox1.Text
je vide mon TextBox1: TextBox1.Clear()

- 2ème Clic je saisie d'autres informations dans mon TextBox :
Label2.Text = TextBox1.Text
je vide mon TextBox1: TextBox1.Clear()

- 3ème Clic je saisie d'autres informations dans mon TextBox :
Label3.Text = TextBox1.Text
je vide mon TextBox1: TextBox1.Clear()

merci pour votre aide

8 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
15 mars 2015 à 14:59
Bonjour tu crées une liste de textbox, à chaque click tu incrémentes un index, et tu vides le textbox de la liste avec le dit index
1
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 mars 2015 à 15:18
Bonjour,
Hé bien : ===>>>
Utilise donc une variable (appelons-la toto) déclarée générale (en déclaration générale du module de code) ou statique (au sein de la procédure click).
Incrémente-la de une unité à chaque click
Et agis en fonction de la valeur de toto au sein de la procédure click
Et remets toto à 0 en fin de procédure lorsque toto = 3
Tout cela est on ne peut plus "enfantin" !
1
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
15 mars 2015 à 15:27
Bonjour UC, rien à ajouter.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
15 mars 2015 à 15:51
Salut

ton myVar sera toujours égale à 1
Tu dois le déclare comme
Static myvar As Integer = 0
comme a dit
Ucfoutus que je salue
1
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
15 mars 2015 à 15:08
bonjour,
mais comment formaliser votre idée par code?

0

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

Posez votre question
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
15 mars 2015 à 15:43
bonjour,
voilè ce que j'ai mis comme code :
Dim myVar As Integer = 0
myVar = myVar + 1
If ComboParente.Text = "Enfant" Then
If (myVar = 1) Then
Label1.Text = Me.TextBox1.Text
TextBox1.Clear()

ElseIf (myVar = 2) Then
Label2.Text = Me.TextBox1.Text
TextBox1.Clear()
ElseIf (myVar = 3) Then
Label3.Text = Me.TextBox1.Text
TextBox1.Clear()
End If
End If

Résultat : le Label1 qui est rempli à chaque clic pas les autre Labels.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
15 mars 2015 à 15:56
Déjà je t'ai proposé de faire une List(Of TextBox), parce que là t'en as 3 c'est gérable avec des if (quoique ce serait plus propre avec un sélect case), mais si tu évolues à 5, 10, 20 ça va vite devenir le bazar.

Ensuit tu dimensionnes myVar (qui est un nom vachement explicite pour quand dans 1 an tu auras une motif à faire) à chaque click de bouton, donc forcément, il vaut toujours 0....

Il faut dimensionner ta variable au niveau de la classe, ou en statique comme l'ont dit Uc et Shayw

    Dim monIndex As Integer = 0'variables dimensionnées au niveau de la classe
    Dim mesTextBoxs As List(Of TextBox)'dans le New tu y mets tes textbox

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        mesTextBoxs(monIndex).Clear()'utilisation de la liste quand même plus simple

        monIndex = monIndex + 1
        If (monIndex >= mesTextBoxs.Count) Then
            monIndex = 0
        End If

    End Sub

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
15 mars 2015 à 16:01
Public Class Form1

    Dim monIndex As Integer = 0
    Dim mesTextBoxs As List(Of TextBox) = New List(Of TextBox)

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        mesTextBoxs.Add(TextBox1)
        mesTextBoxs.Add(TextBox2)
        mesTextBoxs.Add(TextBox3)
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        mesTextBoxs(monIndex).Clear()

        monIndex = monIndex + 1
        If (monIndex >= mesTextBoxs.Count) Then
            monIndex = 0
        End If

    End Sub
End Class
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
15 mars 2015 à 16:05
Bonjour,
ça marche impec, je vous remercie beaucoup.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
15 mars 2015 à 16:06
Tu n'as plus qu'à mettre le sujet résolue et essayer de chercher un peu par toi même à l'avenir.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 mars 2015 à 21:04
galaxy2009 a distribué des + 1 ...
Et a oublié Whismeril, dont la solution était pourtant plus "étendue" !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
15 mars 2015 à 22:20
Si si, il m'en a mis un sur le principe...
0
Rejoignez-nous