Mit Tastatur Button Bewegen
-
Ich habe zuhause eh so ein Buch neben mir liegen da stehen eh die ganzen Grundlagen drinne nur eben nicht das.
Ich nutze die Zusatzinformationen schon.
Ich habe mir erstens den Code von Hellsgore genommen ihn mir angeschaut und eingefügt. Dann habe ich den EventHandler gesetzt und nach dem Form.Keypreview geschaut und es dann auch gefunden.
Aber es funktioniert irgendwie trotzdem nicht.
-
Hallo,
Ich habe zuhause eh so ein Buch neben mir liegen da stehen eh die ganzen Grundlagen drinne nur eben nicht das.
Du wirst selten in einem Buch eine Lösung finden die exakt zu Deinem Problem passt. Oft ist es viel mehr Transferwissen. Irgendwo in Deinem Buch werden sicherlich Events behandelt. Das zu überspringen weil da nicht KeyUp vorkommt wäre falsch.
schau mal hier:
http://openbook.galileocomputing.de/csharp/kap23.htmpublic partial class Form1 : Form { public Form1() { InitializeComponent(); this.KeyPreview = true; this.KeyUp += new KeyEventHandler(Form1_KeyUp); } void Form1_KeyUp(object sender, KeyEventArgs e) { MessageBox.Show(e.KeyCode.ToString()); } }
http://www.rothmichael.de/cpp/233606.zip
Ich persönlich fand dieses Buch völlig Witzlos:
C#-Kochbuch | ISBN: 9783897214644aber gestehe ein ähnliches für PHP zu verwenden. In den Kochbüchern wird zu konkreten Problemen Lösungen geboten. Wenn man in der Sprache aber ein wenig Erfahrung hat kommt man sich ein wenig veralbert vor.
Noch ein Tipp:
Wenn Du im Eigenschaftsfenster in der Ansicht der Events bei KeyUp einen doppelklick machst, erstellt die IDE eine Routine für Dich mit fertig eingetragenen Event.
-
Vielen Dank es hat geklappt.
Es tut mir Leid das ich mich so blöd angestellt habeIch verwende dieses : Jetzt lerne ich Visual C# 2008.
Jetzt habe ich auch so ziemlich verstanden was ich falsch hatte
Nur ich wusste nicht was ich mit dem Zip Ordner anfangen sollte^^
-
Es tut mir Leid das ich mich so blöd angestellt habe
Das ist die falsche Einstellung. Du hast nicht aufgegeben und dazu gelernt. Und darum alleine geht es.
-
Ok^^
Was sollte ich eigentlich mit dem ZIP Ordner?
Meinst du das Kochbuch C# ist gut oder schlecht
-
In dem Zip befand sich das gepostete Beispiel als Projekt zum selbst anguggen und basteln.
Ob das Kochbuch gut oder schlecht ist kann ich nicht sagen, es hängt doch sehr von dem Wissensstand ab. Das C# Kochbuch fand ich persönlich schlecht. Die Lösungen waren mehr reine Grundlagen. Ich habe auch noch ein Kochbuch für MySQL und PHP hier stehen. Das MySQL Buch finde ich, mangels Kenntnisse nicht ganz so wertlos wie das C# Buch. Es dient mir dazu schnell Begriffe für eine tiefe Suche zu finden. Das PHP Buch dagegen verwende ich so wie es gedacht ist. Ich mache sehr selten was in PHP und müsste alternativ lange in den Referenzen suchen.
Wenn man noch am Anfang ist kann das Buch durchaus weiterhelfen. Erst recht wenn man nur nebenbei was mit C# und .Net machen muss. Wenn man aber regelmäßig mit den Werkzeugen arbeitet, wird es nach und nach nutzlos und man findet nur Lösungen die sehr offensichtlich sind.
Berücksichtigen solltest Du jetzt aber auch noch, dass ich vllt. einfach nur so arrogant und überheblich bin , dass ich nicht erkennen will, das mir das Buch noch was bringen könnte. Es wird mit Sicherheit noch das ein oder andere neue für mich im Buch stehen. (Ich bin mir aber sicher, das ich das wissen auch nebenbei bei Problemlösungen bekomme - weil es einfach in der MSDN steht
-
Ok ich bin aber mit meinem jetztigen Buch eigentlich Recht zufriedn.
Den Zip Ordner konnte ich net öffnen bzw die Dateien weill es irgendeien Fehler gab^^
Aber ihr habt Recht ich bin eigentlich noch ein Anfänger.
Aber nicht mehr lange
-
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....