Bonjour!
J'aimerais savoir comment me servir des 4 flèches du clavier dans mon programme... J'ai essayé avec l'évènement Form_Keypress, mais ça ne semble pas vouloir fonctionner![]()
Merci pour votre aide!![]()
Bonjour!
J'aimerais savoir comment me servir des 4 flèches du clavier dans mon programme... J'ai essayé avec l'évènement Form_Keypress, mais ça ne semble pas vouloir fonctionner![]()
Merci pour votre aide!![]()
Afin de servir de contrôle pour le petit jeu que je développe...
Merci!
as-tu vérifié que la propriété Keypreview de ta form est bien fixée à TRUE ?
Bonsoir,
Voici un exemple, place un PictureBox sur ta Form et sers-toi des flêches de direction.
jpleroisse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Form_Load() Me.KeyPreview = True End Sub ' Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ' tu peux aussi vérifier pour empêcher de sortir de la Form... With Picture1 Select Case KeyCode Case vbKeyUp: .Top = .Top - 200 Case vbKeyDown: .Top = .Top + 200 Case vbKeyLeft: .Left = .Left - 200 Case vbKeyRight: .Left = .Left + 200 End Select End With End Sub
J'ai un picture box avec une méga bmp... mais en mettant un breakpoint dans l'évènement, ça rentre pas dans l'évènement ce qui signifie que ça fontionne pas![]()
Qu'est-ce que c'était censé faire, faire bouger l'image dans le picture box?
D'autres suggestions?
Merci pour ton aide leroissejp, c'est très apprécié!![]()
En principe, ca ne fonctionne pas avec l'évenement Keypress mais avec les évenements keydown et keyup. Donc il me semble que le code de leroissejp devrait fonctionner (j'ai pas pu tester pour l'instant).
tu as quoi comme contrôle sur ta Form...,
Je ne suis pas sur que cela soit la bonne maniére, mais voila , sur une form avec un combobox, même avec Form.KeyPreview à True .. je passe pas dans le keyUp de ma form mais dans celui du combo... , j'ai rajouté du code pour appeller le keyUP de la form...
oups... je sais pas si je suis clair..
8) mais ..regarde ce code , pour une Form avec un controle combobox...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub ComboBox1_KeyUp(KeyCode As MSForms.ReturnInteger, Shift As Integer) Debug.Print "Combobox1_keyup" Dim i As Integer i = KeyCode Form_KeyUp i, Shift End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Debug.Print KeyCode End Sub
Si, comme je le pense, tu cherches simplement à déplacer un objet sur ta form à l'aide des flêches, essayes tout simplement ce petit code dans un projet doté d'une form et d'un picturebox picture1. Ajuoutes-y tous les controles que tu veux et écris cela dans l'événement keydown de ta form,
après t'être assuré d'avoir fixé à true la propriété KeyPreview de ta form
L'événement form_keypress intervient indépendament de ce que la souris pointe ou non sur un autre objet (essayes et tu verras) car tout objet étant dans la form, l'événement concerne en priorité la forù
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim a a = 50 ' amplitude du mouvement If KeyCode = 40 Then Picture1.Top = Picture1.Top + a 'utilisation de la flêche basse If KeyCode = 39 Then Picture1.Left = Picture1.Left + a 'utilisation de la flêche droite If KeyCode = 38 Then Picture1.Top = Picture1.Top - a 'utilisation de la flêche haute If KeyCode = 37 Then Picture1.Left = Picture1.Left - a 'utilisation de la flêche gauche End Sub
as-tu essayer de placer un combobox sur ta form ?Envoyé par jmfmarques
Bon je viens d'installer un combobox, pour voir : ca marche (le picture box se déplace avec les fleches)
J'ai essayé aussi l'inverse : faire déplacer le combobox avec les fleches : ca marche aussi !
QUE VEUX-TU FAIRE EXACTEMENT ????
Dans mon message prédédent il convient de lire : " l'événement form-Keydown intervient..."
en fait c'est pas avec un combobox mais un datacombo... , Sinon moi je ve rien faire... mais lorsque j'ai fait mes test pour répondre à la question ma form n'étais pas vide il y avais 3 dataCombo dessus.. et si l'un des datacombo à le focus .. les événemet KEyUp et KeyDown ne sont pas transmis à la Form.. sinon nightwish ne nous as pas dit le genre de contôle qu'il aura sur sa Form ... mais si ce n'est que des pictureBox ... il ne devrai pas y avoir de problémes..![]()
Bonjour,
nightwish, mon code n'est pas censé faire bouger l'image dans le PictureBox, mais le PictureBox lui-même et il Fonctionne!!.
Si tu plaçais ton code pour voir.
jpleroisse
Dans ma version (VB5) je ne vois pas de ComboData. Je ne possède qu'un contrôle Data. Avec lui, tout marche également.
Le seul problème qui pourrait se présenter est que certains contrôles (textBox, ComboBox, etc...) répondent également aux touches gauche, droite, etc... pour provoquer des déplacements (ligne, article, etc...) à l'intérieur du contrôle.
Il est tout-à-fait possible de palier cette difficultés par une gestion conditionnelle dans les événements keydown de ces contrôles (si.. action à définir.... alors si l'une des 4 flêches est utilisée.. alors keycode = 0)
Si comme je le pense, la finalité est de construire un jeu, il suffit d'un bouton de démarrage/fin alternatif de l'action et d'une variable/drapeau dont on se sert dans le code de l'événement keydown du/des contrôle(s) en cause.
Le code de leroissejp fonctionne (désolé d'avoir dit que ça fonctionnait pas!! 8) ), mais ce que j'aimerais, c'est que le picturebox reste statique sur le formulaire et que quand je joue avec les flèches, celui-ci se positionne sur une partie d'une méga photo qui représente la map du jeu...
Est-ce que c'est possible ou si c'est moi qui est dans le champs complètement?
Merci pour votre aide, vous êtes sympa!![]()
C'est largement posible, mais à condition que :
- ton image à déplacer soit composée d'une partie "transparente" (sans quoi ce serait moche)
- que tu saches "jouer" avec l'API de Windows pour manipuler les pixels
Il ne me semble pas que tu en sois arrivé à ce stade. Alors : il faut que tu commences par le commencement et, le jour où tu en seras arrivé à un début de résultat, on pourra voir le reste, pas avant ! Il ne me semble pas non plus, en effet, que la vocation de ce forum soit de construire les applications des uns ou des autres, mais de les guider dans leurs efforts pour y parvenir...
Salut
Petit exemple de code tout simple qui déplace un contrpôle Image sur une Form. En supposant que l'image est plus grande que la Form...
Reste à gérer les dépassements: lorsque Top et Left sont à zéro, par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Dim s As Integer If Shift = 2 Then s = 10 Else s = 1 End If Select Case KeyCode Case vbKeyLeft Image1.Left = Image1.Left - 30 * s Case vbKeyRight Image1.Left = Image1.Left + 30 * s Case vbKeyUp Image1.Top = Image1.Top - 30 * s Case vbKeyDown Image1.Top = Image1.Top + 30 * s End Select End Sub
Partager