Veröffentlicht 24. März 200916 j 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
24. März 200916 j 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
24. März 200916 j 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 :|
24. März 200916 j 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
26. März 200916 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.