Mit Tastatur Button Bewegen
-
weill es irgendeien Fehler gab^^
Das solltest Du als erstes lernen. Fehlerbeschreibungen so zu Posten wird Dir mehr Flame als Lösungen bieten. Lies mal das hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html (inkl. dem dort verlinkten Artikel.)
-
Puh ziemlich viel^^.
Ok der Fehler war dass es Windows nicht öffnen konnte.
wErde daran denken.Ich hoffe das ist nicht zu seh OFF-Topic
-
namespace BeteBewegen { public partial class Form1 : Form { public Form1() { InitializeComponent(); ; this.KeyPreview = true; this.KeyUp += new KeyEventHandler(button1_KeyUp); this.KeyUp += new KeyEventHandler(button2_KeyUp); } private void button1_KeyUp(object sender, KeyEventArgs e) { Point location = this.button1.Location; switch (e.KeyCode) { case Keys.Up: this.button1.Location = new Point(location.X, location.Y - 1); break; case Keys.Down: this.button1.Location = new Point(location.X, location.Y + 1); break; case Keys.Right: this.button1.Location = new Point(location.X + 1, location.Y); break; case Keys.Left: this.button1.Location = new Point(location.X - 1, location.Y); break; } } private void button2_KeyUp(object sender, KeyEventArgs e) { Point location = this.button1.Location; switch (e.KeyCode) { case Keys.Right: this.button2.Location = new Point(location.X + 1, location.Y); break; case Keys.Left: this.button2.Location = new Point(location.X - 1, location.Y); break; } } } }
Habe jetzt noch ein Problem.
WEnn ich 2 buttons auf diese Weise verschieben mag, dann kommt aufeinmal der Button2 auf die Position des 1.Buttons.Ich will das die bieden Buttons untereinander versetzt auf einer Linie gehen. Ist aber durch diesen Code irgendwie nicht möglich.
-
private void button2_KeyUp(object sender, KeyEventArgs e)
{
Point location = this.button1.Location;
switch (e.KeyCode)
-
Danke!!
Jetzt komme ich mir aber wirklich dumm vor
Durchlesen ist wohl bei mir nicht genug^^
-
Ich versuche gerade den Button mit einer for SChleife immer 5 Koordinaten nach Links gehen zu lassen. und wen der Button die Postion X = 0 und Y = egal erreicht das er dort automatisch aufhört zu fahren. Da ich es irgendwie nicht ohne Klickereigniss einbinden konte habe ich es so gemacht, dass wenn ich auf den Button drücke, dass es beginnt.
Nun starte ich das Programm und Windows kommt mit der Fehlermeldung : blabla.exe funktioniert nicht mehr.
Nun wollte ich wissen was ich falsch gemacht habeDer Code:
private void button1_Click(object sender, EventArgs e) { Point location = this.button1.Location; for (int b = location.X; b > 0; ) { this.button1.Location = new Point(location.X - 5, location.Y); } }
-
Du lernst kein bisschen dazu ?
Bitte die Beiträge die sich um richtiges Posten drehen noch einmal lesen. Vor allem den Teil mit Fehlermeldungen und Informationen Posten.
-
Okay.
Ich will nun das ganze Buttonbewegen auf eine Art "Springender Button" Projekt umstellen. Also der Benutzer kann den Button in jede beliebige Richtung bewegen und wenn er die Pfeiltaste nach oben drückt der Button langsam wieder nach unten kommt.
Ich will nun, dass sich der Button immer nach unten bewegt bis er die Position
X = egal und Y = 0 erreicht.
Dies habe ich versucht mit einer for-SChleife zu lösen, aber dass geht viel zu schnell : Wenn ich das Programm starte, dann geht der Button sofort zur Position X = egal und Y = 0.
Nun will ich, das sich der Button langsamer dorthin bewegt.Gibt es irgendeine Möglichkeit die Schleife langsamer abzuspielen oder den Button langsamer, ohne die Anzahl der bewegten Koordninaten zu verändern, zu bewegen?
-
Sry ich wollte eigentlich nur die Rechtschreibung in meinem Beitrag vebsseren habe aber unabsichtlich auf Editieren gedrückz.
-
Am einfachsten über Timer (wobei das nicht unbedingt der eleganteste Weg ist).
-
Und benutzt doch entlich mal den Debbuger....