Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détection du click

3 réponses
Avatar
Jacques
Bonjour,


J'ai un formulaire avec 40 textbox.
Pour ne pas écrire 40 fois le même code, comment puis-je détecter sur quel
textbox je viens de clicker ?


Merci de vos réponses


Jacques

3 réponses

Avatar
jchtible
Bonjour,

Tu peux utiliser une méthode communes pour toutes tes textbox.
Il te suffit d'ajouter d'ajouter un abonnement à l'évènement Click a chacune
de tes textbox.

2 solutions:

1/ abonnement dynamique
Tu décide a quel moment la méthode réagira au clic. Par exemple dans le
Form.Load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
AddHandler TextBox1.Click, AddressOf MethodeClick
AddHandler TextBox2.Click, AddressOf MethodeClick
AddHandler TextBox3.Click, AddressOf MethodeClick

End Sub


2/ abonnement statique
La méthode est abonnée à l'évènement directement et définitivement.

Private Sub MethodeClick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.Click, TextBox2.Click, TextBox3.Click

End Sub



Ensuite, indépendament de la solution choisie, tu peux récupérer ton objet
TextBox de cette manière:

Dim MaTextBox as Textbox = ctype(sender,textbox)

If MaTextBox IsNot Nothing Then
MaTextBox.BackColor = Color.Blue
.....
End If




"Jacques" wrote:

Bonjour,


J'ai un formulaire avec 40 textbox.
Pour ne pas écrire 40 fois le même code, comment puis-je détecter sur quel
textbox je viens de clicker ?


Merci de vos réponses


Jacques





Avatar
Jacques
Un grand merci.

Jacques

"jchtible" a écrit dans le message de
news:
Bonjour,

Tu peux utiliser une méthode communes pour toutes tes textbox.
Il te suffit d'ajouter d'ajouter un abonnement à l'évènement Click a


chacune
de tes textbox.

2 solutions:

1/ abonnement dynamique
Tu décide a quel moment la méthode réagira au clic. Par exemple dans le
Form.Load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
AddHandler TextBox1.Click, AddressOf MethodeClick
AddHandler TextBox2.Click, AddressOf MethodeClick
AddHandler TextBox3.Click, AddressOf MethodeClick

End Sub


2/ abonnement statique
La méthode est abonnée à l'évènement directement et définitivement.

Private Sub MethodeClick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.Click, TextBox2.Click, TextBox3.Click

End Sub



Ensuite, indépendament de la solution choisie, tu peux récupérer ton objet
TextBox de cette manière:

Dim MaTextBox as Textbox = ctype(sender,textbox)

If MaTextBox IsNot Nothing Then
MaTextBox.BackColor = Color.Blue
.....
End If




"Jacques" wrote:

> Bonjour,
>
>
> J'ai un formulaire avec 40 textbox.
> Pour ne pas écrire 40 fois le même code, comment puis-je détecter sur


quel
> textbox je viens de clicker ?
>
>
> Merci de vos réponses
>
>
> Jacques
>
>
>


Avatar
Silve Hervé
Bonsoir Jacques et tous le monde,

Où alors passer le Handles de chaque Textbox pour un évènement commun :

Private Sub MesTextBoxs_Click(ByVal sender As Object, ByVal e As
System.EventArgs) _
Handles TextBox1.Click, TextBox2.Click,
TextBox3.Click, _
TextBox4.Click, TextBox5.Click,
TextBox6.Click

'Code...

End Sub

Hervé.

"Jacques" a écrit dans le message de
news:OF$
Bonjour,


J'ai un formulaire avec 40 textbox.
Pour ne pas écrire 40 fois le même code, comment puis-je détecter sur quel
textbox je viens de clicker ?


Merci de vos réponses


Jacques