Mit Steuerkreuz/Pfeiltasten Buttons bewegen

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Solaris.

    Mit Steuerkreuz/Pfeiltasten Buttons bewegen

    Hallo Leute,
    ich wollt mich nochmals für die bisherigen Antworten bedanken, ich bin gut weitergekommen :D
    Jetzt hab ich ne Frage: Um ein Objekt mit einem Button zu bewegen benutze ich diesen Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Button1.Left = Button1.Left + 5
    4. End Sub
    5. End Class


    Der funktioniert Prima, ABER! wenn ich es versuche mit dem Buchstaben A das Objekt zu bewegen geht das nicht.
    Hier der Code für's Bewegen mit der Taste A:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub form1_keypress(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. If Keys.A Then
    4. Button1.Left = Button1.Left + 5
    5. End If
    6. End Sub
    7. End Class


    ??? ich bin mir sicher, da ist was falsch ?(

    könntet ihr nurmal drüberschauen

    Dankeschön im Vorraus :love:
    Das ganze muss ins KeyDown Event. Sollte dann so aussehen:

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    2. If e.KeyCode = Keys.A Then
    3. Button1.Left = Button1.Left + 5
    4. End If
    5. End Sub


    Bei so etwas solltest du am besten immer den KeyCode abfragen, da dieser in allen Ländern gleich ist und auch bei anderen Tastaturlayouts funktioniert.

    MyBase.Load wird nur beim start des Programms aufgerufen. Deswegen wird auch keine Eingabe erkannt. KeyDown wird allerdings immer dann aufgerufen wenn auf der Tastatur eine Taste gedrückt wird und daher wird jede Eingabe erkannt.

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

    Tipp: Du kannst in eine Sub des jeweiligen Controls gehen und dann ist oben rechts eine DropDown-Liste, bei der du das jeweilige Event des Controls auswählen kannst.
    Wenn du dann auf das Event klickst, wird dir das korrekte Event eingefügt.
    Bilder
    • Unbenannt 2.jpg

      55,82 kB, 1.075×280, 308 mal angesehen
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    könnte am Code liegen... ;)
    Versuch ma im Debug mit Haltepunkten, obs die Events angesprungen werden.

    Übrigens, ist statt zigmal If Else zu schreiben eine Select Case Anweisung übersichtlicherer:

    VB.NET-Quellcode

    1. Select e.Keycode
    2. Case KeyCode.A
    3. 'mach dieses
    4. Case KeyCode.B
    5. 'mach jenes
    6. Case Else
    7. 'Oh Schreck
    8. Select End


    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Geht auch so, vielleicht haut das bei dir hin:

    VB.NET-Quellcode

    1. ' Button nach unten bewegen nach Tastendruck auf Pfeil nach unten
    2. ' muss auch wieder in Form1_KeyDown
    3. If e.KeyCode = Keys.Down Then
    4. Button1.Location = New Point(Button1.Location.X, Button1.Location.Y -25)
    5. Else
    6. MsgBox("Unbekannte Taste!")
    7. End If
    umfassender HTML-Editor mit allem drum und dran: 40%
    Projekt wurde vor 3 Jahren eingestellt ... ich denke nicht das der TE noch daran arbeitet
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."