Benutzer mit den meisten Antworten
Objekt bewegt soll sich nur mit einer Taste bewegen, tut es aber nicht.

Frage
-
Hallo,
Ich bin noch ein ziemlicher Visual Basic Anfänger. Im moment benutze ich Visual Basic 2008 Express Edition.
Ich wollte was ganz einfaches Programmieren, und zwar das sich ein Objekt nur nach rechts bewegt, aber es
soll sich nur nach rechts bewegen wenn man die Taste "D" drückt. Ich habe alles gemacht. Es bewegt sich auch,
aber ich kannn alle Tasten benutzen. Ich möchte nur das es sich mit der Taste "D" bewegt! Was habe ich Falsch gemacht?
Public Class Form2
Private Declare Function GetAsyncKeyState Lib "User32" (ByVal VKey As Long) As Integer
Private Sub Form2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If GetAsyncKeyState(Keys.D) Then
PictureBox1.Left += 5
End If
End Sub
End Class
Antworten
-
Hallo,
dazu brauchst Du keine externe Funtion zu bemühen, alles nötige bekommst Du in den entprechenden EventArgs:
Entweder bei KeyDown:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyData = Keys.D Then Me.PictureBox1.Left += 5 End If End Sub
oder bei KeyPress:
Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = "d"c Then Me.PictureBox1.Left += 5 End If End Sub
Viele Grüße,
Thorsten
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 10. August 2010 07:41
Alle Antworten
-
Hallo,
dazu brauchst Du keine externe Funtion zu bemühen, alles nötige bekommst Du in den entprechenden EventArgs:
Entweder bei KeyDown:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyData = Keys.D Then Me.PictureBox1.Left += 5 End If End Sub
oder bei KeyPress:
Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = "d"c Then Me.PictureBox1.Left += 5 End If End Sub
Viele Grüße,
Thorsten
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 10. August 2010 07:41