Zum Inhalt springen

[VB 2008] Timer per Tastendruck


Empfohlene Beiträge

Geschrieben

Tach,

Ich hab mal wieder ein Problem und zwar möchte ich mein Panel bewegen, wobei ich den Timer per Tastendruck starte, der dann mein Panel bewegt.

Nur weiss ich nicht wie ich den Timer abschalte sobald ich die Taste loslasse :(

Hier mal der Code:


Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        timRunter.Enabled = False

        timRechts.Enabled = False

        timOben.Enabled = False

        timLinks.Enabled = False

    End Sub


    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown


        If e.KeyCode = Keys.Up Then

            timRunter.Enabled = False

            timRechts.Enabled = False

            timOben.Enabled = True

            timLinks.Enabled = False


        ElseIf e.KeyCode = Keys.Down Then

            timRunter.Enabled = True

            timRechts.Enabled = False

            timOben.Enabled = False

            timLinks.Enabled = False


        ElseIf e.KeyCode = Keys.Right Then

            timRunter.Enabled = False

            timRechts.Enabled = True

            timOben.Enabled = False

            timLinks.Enabled = False


        ElseIf e.KeyCode = Keys.Left Then

            timRunter.Enabled = False

            timRechts.Enabled = False

            timOben.Enabled = False

            timLinks.Enabled = True

        End If


    End Sub


    Private Sub timRunter_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timRunter.Tick

        panFigur.Location = New Point( _

        panFigur.Location.X, _

        panFigur.Location.Y + 2)

    End Sub


    Private Sub timRechts_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timRechts.Tick

        panFigur.Location = New Point( _

                panFigur.Location.X + 2, _

                panFigur.Location.Y)

    End Sub


    Private Sub timOben_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timOben.Tick

        panFigur.Location = New Point( _

        panFigur.Location.X, _

        panFigur.Location.Y - 2)

    End Sub


    Private Sub timLinks_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timLinks.Tick

        panFigur.Location = New Point( _

        panFigur.Location.X - 2, _

        panFigur.Location.Y)

    End Sub


End Class

Mfg Cartman

Geschrieben

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown


        If e.KeyCode = Keys.Up Then

            timRunter.Enabled = False

            timRechts.Enabled = False

            timOben.Enabled = True

            timLinks.Enabled = False


        ElseIf e.KeyCode = Keys.Down Then

            timRunter.Enabled = True

            timRechts.Enabled = False

            timOben.Enabled = False

            timLinks.Enabled = False


        ElseIf e.KeyCode = Keys.Right Then

            timRunter.Enabled = False

            timRechts.Enabled = True

            timOben.Enabled = False

            timLinks.Enabled = False


        ElseIf e.KeyCode = Keys.Left Then

            timRunter.Enabled = False

            timRechts.Enabled = False

            timOben.Enabled = False

            timLinks.Enabled = True

        End If


    End Sub

Es gibt nicht nur KeyDown, sondern auch KeyUp :)

Geschrieben

Ouh Man D:

Danke! ^^

& noch ne Frage,

Wie löse ich etwas aus wenn mein Panel jetzt ein anderes berührt?

z.B. Ich streife mit meinem panFigur, ein anders festes Panel & dann soll eine MsgBox auftauchen

Mit If panFigur.location = <anders panel>, bla bla bla

geht's schonmal nicht :|

Geschrieben

Evtl. so?


Dim recFest As New Rectangle(panelFest.Location.X, panelFest.Location.Y, panelFest.Size.Width, panelFest.Size.Height)


Dim recFigur As New Rectangle(panelFigur.Location.X, panelFigur.Location.Y, panelFigur.Size.Width, panelFigur.Size.Height)


If recFest.IntersectsWith(recFigur) Then

 Bla

End If

Geschrieben

Danke :)

Das klappt auch alles ganz gut, nur kommt die Meldung erst nachdem ich komplett durch das andere Panel durchgefahren bin, jedenfalls sehr verspätet ^^

Gibt es auch Möglichkeit den Bereich auf dem das Panel sich bewegen kann auch einzuschränken?

Also nur nicht nur in nem Viereck sondern z.B. in nem Labyrinth :D

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...