hallo
ich würde gerne die Position eines Panels über die Pfeiltasten wärend der Laufzeit verändern können. Wie macht man dass? wie soll man die pfeiltasten „nennen“ (man kann ja nicht einfach wie bei buchstaben z.b. „w“ sagen) Ich programmiere mit Vb2008.
schon mal danke im vorraus
merlin
Hallo Merlin
Du brauchst die Pfeiltasten nicht zu „benennen“, weil das von .NET schon vorgegeben ist. Zum Beispiel hat die Pfeiltaste „Nach oben“ den Namen Keys.Up.
Um herauszufinden, wann eine Taste gedrückt wurde musst du das entsprechende Ereigniss des Forms aufrufen lassen. Das wäre entweder KeyDown, KeyUp oder KeyPress. Dort findest du dann in der übergebenen Variable e unter e.KeyCode die betätigte Taste.
Das Panel kannst du verschieben, indem du die Eigenschaft Location veränderst.
Ich weis nicht ob ich das gut erklärt habe deswegen das ganze mal als Code:
Private Sub Form1\_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
Dim p As Point = Panel1.Location
Select Case (e.KeyCode)
Case Keys.Up
p.Y -= 1
Case Keys.Down
p.Y += 1
Case Keys.Left
p.X -= 1
Case Keys.Right
p.X += 1
End Select
Panel1.Location = p
End Sub
Das benutzte Panel heisst hier „panel1“, das müsstest du dann bei dir entsprechende umbenennen. Ausserdem solltest du dir den Sub Form1_KeyDown vom FormsDesigner selbst generieren lassen, indem du auf das entsprechende Event doppelt klickst.
Ich steh gerne für weiterre Fragen zur Verfügung!
MfG IGnow