Besoin d'aide, VB.NET

Résolu/Fermé
Cucus_4732 Messages postés 26 Date d'inscription mercredi 18 novembre 2020 Statut Membre Dernière intervention 12 juin 2022 - Modifié le 14 janv. 2021 à 23:10
Whismeril Messages postés 17806 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 septembre 2022 - 15 janv. 2021 à 00:07
Bonjour tout le monde !
J'aurais besoin d'aide pour un bout de code: mon but est que le location left et top changent dès qu'une certaine touche est pressé.
Mon code:

Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
If e.KeyCode = Keys.Enter Then
LBL_1.Location.top = LBL_1.Location.top + 10
End If
End Sub


Cela marche très bien, mais le problème est qu'il faut a chaque fois réenfoncer la touche pour qu'il y ai un nouveau +10.
J'aimerais donc une fonction qui permet de rajouter +10 a la location du label sans avoir à chanque fois a réenfoncer la touche

Merci d'avance
- Marcus

2 réponses

NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 326
14 janv. 2021 à 23:24
As-tu essayé l'event KeyPress ?
0
Cucus_4732 Messages postés 26 Date d'inscription mercredi 18 novembre 2020 Statut Membre Dernière intervention 12 juin 2022
14 janv. 2021 à 23:31
Non, j'essayerai
0
Whismeril Messages postés 17806 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 septembre 2022 859
15 janv. 2021 à 00:07
Si tu veux que le label se déplace tant que la touche est enfoncée, alors il faut répéter l'action pendant tout ce temps.

Une solution est de mettre le code de déplacement dans un timer.
Tu démarre le timer au moment du KeyDown et tu l'arrêtes au KeyUp.

Si l'intervalle du timer est trop court, tu arrêteras le label trop loin, si l'intervalle est trop long le déplacement sera lent.
Tu peux commencer par 500ms et ensuite tu adaptes en fonction de ton ressenti
0