cartman1991 Geschrieben 24. März 2009 Geschrieben 24. März 2009 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 Zitieren
SoL_Psycho Geschrieben 24. März 2009 Geschrieben 24. März 2009 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 Zitieren
cartman1991 Geschrieben 24. März 2009 Autor Geschrieben 24. März 2009 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 :| Zitieren
aafreak Geschrieben 24. März 2009 Geschrieben 24. März 2009 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 Zitieren
cartman1991 Geschrieben 26. März 2009 Autor Geschrieben 26. März 2009 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 Zitieren
Empfohlene Beiträge
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.