Bewegung geht nicht

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Nikolai.

    Bewegung geht nicht

    Hallo leute

    ich möchte, dass eine PictureBox sich bewegt, wenn ich tasten drücke. Bis jetzt bin ich nicht weit gekommen, aber schon am anfang kriege ich probleme.

    folgenden Code habe ich bis jetzt zusammengestellt:

    VB.NET-Quellcode

    1. Private Sub start_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    2. Dim taste As Integer
    3. taste = e.KeyCode
    4. If taste = Keys.Up Then
    5. Dim x As Integer : x = 150
    6. Dim y As Integer : y = 250
    7. Dim z As System.Drawing.Point
    8. z.Offset(x, y)
    9. bub.Location.Offset(z)
    10. ElseIf taste = Keys.Down Then
    11. MsgBox("Unten")
    12. ElseIf taste = Keys.Left Then
    13. MsgBox("Left")
    14. ElseIf taste = Keys.Right Then
    15. MsgBox("Rechts")
    16. End If
    17. End Sub


    Die MsgBoxs sind zur Prüfung da. Also, wenn ich das so mache, Dann bewegt sich der Picturebox mit Namen "bub" nicht. Was kann daran falsch sein????

    mb, Nikolai
    Versuch einmal das:

    VB.NET-Quellcode

    1. Private Sub start_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    2. Select Case e.KeyCode
    3. Case Keys.Up
    4. bub.Top -= 10
    5. Case Keys.Down
    6. bub.Top += 10
    7. case Keys.Left
    8. bub.Left -= 10
    9. Case Keys.Right
    10. bub.Left += 10
    11. End Select
    12. End Sub
    Danke dir, das funktioniert

    ist ja alles schön und gut, aber ich habe die problematik jetzt nicht verstanden...


    kannst du vielleicht erklären, wieso es nicht mit If geht?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nikolai“ ()

    Eigentlich sollte auch ein IF dieses Problem lösen, und ich kann grad auch keinen genauen Fehler erkennen...

    ich weiss aber auch nicht genau was du hiermit genau machen willst

    VB.NET-Quellcode

    1. z.Offset(x, y)
    2. bub.Location.Offset(z)


    Und elseif ist eigentlich immer ein Fall für nen Case ;)
    also Offset ist so ein befehl, um einer PictureBox x und y - koordinaten zu verweisen

    also, ich habe es so gemacht, wie du oben geschrieben hast
    der unterschied ist glaube ich in:

    .Top
    .Left

    das funktioniert, also lasse ich so. Danke nochmal