cartman1991 Geschrieben 29. Juli 2009 Geschrieben 29. Juli 2009 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 Zitieren
Klotzkopp Geschrieben 29. Juli 2009 Geschrieben 29. Juli 2009 Wird dein if-Block in Form1_KeyDown denn überhaupt betreten? Mach doch mal einen Breakpoint rein. Zitieren
cartman1991 Geschrieben 30. Juli 2009 Autor Geschrieben 30. Juli 2009 Nein D: Aber an was könnte das denn dann liegen? :S Zitieren
cartman1991 Geschrieben 30. Juli 2009 Autor Geschrieben 30. Juli 2009 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? Zitieren
0815FIA Geschrieben 30. Juli 2009 Geschrieben 30. Juli 2009 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) Zitieren
cartman1991 Geschrieben 30. Juli 2009 Autor Geschrieben 30. Juli 2009 Danke für den Tipp & ja ist er, hab eben nochmal nachgesehn Gibt's vllt. noch eine Alternative zum KeyDown? Zitieren
cartman1991 Geschrieben 30. Juli 2009 Autor Geschrieben 30. Juli 2009 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?! Zitieren
cartman1991 Geschrieben 30. Juli 2009 Autor Geschrieben 30. Juli 2009 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 Zitieren
Guybrush Threepwood Geschrieben 30. Juli 2009 Geschrieben 30. Juli 2009 Unm auf das Drücken der Pfeiltasten zu reagieren musst du ProcessCmdKey überschreiben 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.