Veröffentlicht 29. Juli 200916 j Tach, Ich hab folgendes Problem und zwar möchte ich mein Panel2 mit den Pfeiltasten bewegen, das ganze hab ich so probiert: Bsp: Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown '// Timer für Bewegung nach Oben an If e.KeyCode = Keys.Up Then timRunter.Enabled = False timRechts.Enabled = False timOben.Enabled = True timLinks.Enabled = False .... & hier noch der Timer: Private Sub timOben_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timOben.Tick Panel2.Location = New Point( _ Panel2.Location.X, _ Panel2.Location.Y - 10) If Panel2.Top = Panel1.Top Then MsgBox("Leider verloren") timRunter.Enabled = False timRechts.Enabled = False timOben.Enabled = False timLinks.Enabled = False Panel2.Location = New Point(200, 200) End If End Sub Jetzt wenn ich den Debug-Modus starte und eine Pfeiltaste drücke, passiert überhaupt nicht's :S Hoffe könnt mir helfen, mfg Cartman
29. Juli 200916 j Wird dein if-Block in Form1_KeyDown denn überhaupt betreten? Mach doch mal einen Breakpoint rein.
30. Juli 200916 j Hab jetzt mal "Keypreview = True" extra nochmal auf nen Button gelegt, aber hat auch nichts gebracht. & Anbei noch eine Frage, wenn ich ein kleines Panel erzeuge, Code: Dim Element As New Panel With Element .BackColor = Color.Green .Size = New Size(10, 10) .Visible = True Berechnen: .Location = New Point(Rnd() * 300, Rnd() * 300) If Element.Location.X > 340 Or Element.Location.X < 10 Then GoTo Berechnen ElseIf Element.Location.Y < 290 Or Element.Location.Y > 10 Then GoTo Berechnen End If Me.Controls.Add(Element) End With & Ich erzeuge mehrere, werden diese dann automatisch nummeriert oder weisst jemand wie ich jedes panel selbst ansprechen kann?
30. Juli 200916 j Naja, du könntest die Panels in einer List<T> verpacken und über den index gehen. Zu deinem Key Event: Nochmal checken, ob der Handler überhaupt mit dem Button verknüpft ist (kann beim umbenennen etc. unter Umständen verloren gehen)
30. Juli 200916 j Danke für den Tipp & ja ist er, hab eben nochmal nachgesehn Gibt's vllt. noch eine Alternative zum KeyDown?
30. Juli 200916 j Hab grad mal If e.KeyCode = Keys.Up Then mit If e.KeyCode = Keys.F10 Then ersetzt, so funktionierts, kann ich an den Pfeiltasten vllt. irgendwas verstellt habn?!
30. Juli 200916 j Nein, gestern ging's auch noch, und als ich heut dann wieder n test machen wollte ging's nicht mehr und hab seit gestern nicht's am Quellcode geändert
30. Juli 200916 j Unm auf das Drücken der Pfeiltasten zu reagieren musst du ProcessCmdKey überschreiben
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.