Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Vb.net Problemi riconoscimento tasti
Forum - C# / VB.NET - Vb.net Problemi riconoscimento tasti

Avatar
Saik (Normal User)
Pro


Messaggi: 117
Iscritto: 07/08/2011

Segnala al moderatore
Postato alle 16:19
Lunedì, 19/03/2012
Buongiorno a tutti! Ieri cercavo di scrivere un piccolo gioco in vb.net però quando devo ricevere l'input dalla tastiera il pc non legge due tasti premuti contemporaneamente come posso risolvere il problema??
Codice sorgente - presumibilmente VB.NET

  1. Dim position1 As Point = PictureBox1.Location
  2.         Dim position2 As Point = PictureBox2.Location
  3.         If PictureBox1.Location.Y < PictureBox3.Location.Y Then
  4.             spostamento1giu = 0
  5.         ElseIf PictureBox1.Location.Y > (PictureBox3.Location.Y + PictureBox3.Size.Height) - PictureBox1.Size.Height Then
  6.             spostamento1su = 0
  7.         Else
  8.             spostamento1giu = 3
  9.             spostamento1su = 3
  10.         End If
  11.         If e.KeyValue = Keys.Up Then
  12.             PictureBox1.Location = New Point(position1.X, position1.Y - spostamento1giu)
  13.         ElseIf e.KeyValue = Keys.Down Then
  14.             PictureBox1.Location = New Point(position1.X, position1.Y + spostamento1su)
  15.         End If
  16.  
  17.         If PictureBox2.Location.Y < PictureBox3.Location.Y Then
  18.             spostamento2giu = 0
  19.         ElseIf PictureBox2.Location.Y > (PictureBox3.Location.Y + PictureBox3.Size.Height) - PictureBox2.Size.Height Then
  20.             spostamento2su = 0
  21.         Else
  22.             spostamento2giu = 3
  23.             spostamento2su = 3
  24.         End If
  25.         If e.KeyValue = Keys.W Then
  26.             PictureBox2.Location = New Point(position2.X, position2.Y - spostamento2giu)
  27.         ElseIf e.KeyValue = Keys.S Then
  28.             PictureBox2.Location = New Point(position2.X, position2.Y + spostamento2su)
  29.         End If


Grazie della risposta
P.S: il codice è posizionato nella sub keydown


Vivi e lascia vivere
PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 16:43
Lunedì, 19/03/2012
Devi utilizzare e.KeyCode non e.KeyValue.


Hai perso.
PM Quote
Avatar
Saik (Normal User)
Pro


Messaggi: 117
Iscritto: 07/08/2011

Segnala al moderatore
Postato alle 18:13
Lunedì, 19/03/2012
Non cambia niente :(:( non mi riconosce lo stesso i tasti contemporaneamente....


Vivi e lascia vivere
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:29
Lunedì, 19/03/2012
Ma "quali tasti" contemporaneamente?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Saik (Normal User)
Pro


Messaggi: 117
Iscritto: 07/08/2011

Segnala al moderatore
Postato alle 19:43
Lunedì, 19/03/2012
in poche parole quando schiaccio la freccia in su la picturebox 1 si deve muovere verso l'alto mentre se premo "w" la picturebox2 si deve muovere verso l'alto. Se premo contemporaneamente "w" e freccia su non succede niente :)


Vivi e lascia vivere
PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 21:21
Lunedì, 19/03/2012
In questo caso credo che tu debba usare la funzione ProcessCmdKey.

Ultima modifica effettuata da Nullable il 19/03/2012 alle 21:32


Hai perso.
PM Quote
Avatar
Saik (Normal User)
Pro


Messaggi: 117
Iscritto: 07/08/2011

Segnala al moderatore
Postato alle 22:36
Lunedì, 19/03/2012
Grazie lo stesso per il tuo aiuto ma ho risolto usando la funzione GetAsyncState :) :) Grazie mille8-)


Vivi e lascia vivere
PM Quote