none
Objekt bewegt soll sich nur mit einer Taste bewegen, tut es aber nicht. RRS feed

  • 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

     

    Freitag, 6. August 2010 22:55

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

    Samstag, 7. August 2010 00:10

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

    Samstag, 7. August 2010 00:10
  • Hallo,

     

    Vielen Dank, Thorsten! Es klappt alles wunderbar!

    Ich habe sogar geschafft, dass ich die PictureBox nach

    Oben, und Unten bewegen kann!

     

    Viele Grüße,

    Dennis  Nemec

    Samstag, 7. August 2010 11:06