shockSTAR Geschrieben 23. April 2009 Geschrieben 23. April 2009 Hallo. Ich möchte nur ein kleines Rechteck über die Form flitzen lassen. Daher habe ich die x und y Koordinaten per ScrollBar.Value verändern lassen. Nun wollte ich dass man die ScrollBars auch per Key.Down etc. bedienen kann, was meiner Ansicht nach auch eine Bewegung des Rechtecks zur Folge haben sollte. Nun habe ich folgendes Problem: Das Rechteck bewegt sich nur nach links und rechts. Key.Down und Key.Right verschieben nach rechts und Up und Left nach links. private void hScrollBar1_ValueChanged(object sender, EventArgs e) { Graphics grfx = this.CreateGraphics(); grfx.Clear(System.Drawing.SystemColors.Control); SolidBrush brush = new SolidBrush(Color.Black); int x; int y; x = hScrollBar1.Value; y = vScrollBar1.Value; grfx.FillRectangle(brush, x, y, 5, 5); } private void vScrollBar1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Up) { vScrollBar1.Value += 1; } if (e.KeyCode == Keys.Down) { vScrollBar1.Value -= 1; } } private void hScrollBar1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Right) { hScrollBar1.Value += 1; } if (e.KeyCode == Keys.Left) { hScrollBar1.Value -= 1; } } [/PHP] Warum verschiebt sich die Grafik nur nach rechts und links? Zitieren
shockSTAR Geschrieben 23. April 2009 Autor Geschrieben 23. April 2009 Ok jetzt kam mir die Lösung. Habe vergessen dass die ScrollBar nur reagiert wenn der Fokus drauf ist. Da dieser auf der hScrollBar war und diese std. über Links und Rechts reagiert hab ich nen Knoten im Kopf bekommen. private void vScrollBar1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Up) {vScrollBar1.Value -= 1;} if (e.KeyCode == Keys.Down) {vScrollBar1.Value += 1;} if (e.KeyCode == Keys.Right) {hScrollBar1.Focus();} if (e.KeyCode == Keys.Left) {hScrollBar1.Focus();} } private void hScrollBar1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Right) {hScrollBar1.Value += 1;} if (e.KeyCode == Keys.Left) {hScrollBar1.Value -= 1;} if (e.KeyCode == Keys.Up) {vScrollBar1.Focus();} if (e.KeyCode == Keys.Down) {vScrollBar1.Focus();} } [/PHP] 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.