Mit Tastatur Button Bewegen



  • Man kann keine Methoden in Methoden deklarieren...



  • Stimmt. 🙂
    Aber wenn ich eines der beiden weglösche dann kommen entweder ganz viele Fehlermeldungen. Oder es funktioniert nicht.
    Und wenn ich beides lasse dann kommt nur eine Fehlermeldnug



  • Lern erst einmal die Grundlagen und komm dann wieder. Mit copy & paste ist es nicht getan.



  • Kann ich ja so ziemlich.

    ICh habe das eh schon oft ausprobiert aber wenns nicht klappt dann fragt man halt um Hilfe.

    Ich bräuchte nur ne kurze ERklärung wie das geht.



  • Hellsgore schrieb:

    Servus,

    hilfreich ist es immer wenn man das bisher entwickelte und den Fehler postet...

    Es ist recht einfach...

    Du gehst hin und fängst das OnKeyDown/Up Event in deiner Applikation ab, fragst nach was für eine Taste gedrückt wurde und setzt die Location:

    private void OnKeyUp(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;
    
                // Left + Right überlasse ich dir ;-)
        }
    }
    

    Viel Spaß
    Hellsgore

    PS:

    Trios schrieb:

    Stimmt. 🙂
    Aber wenn ich eines der beiden weglösche dann kommen entweder ganz viele Fehlermeldungen. Oder es funktioniert nicht.
    Und wenn ich beides lasse dann kommt nur eine Fehlermeldnug

    Ist KEINE aussagekräftige Problembeschreibung.



  • Ok.
    WEnn ich den Code von Hellsgore nehme zeigt mir der Compiler keine Fehler mehr an, aber dafür macht er nichts wenn ich eine Taste drücke.

    Und bei dem Eigenschaftsfenster habe ich ich auch keine Einstellungen die aktiviert sein könnten gefunden.



  • Form.KeyPreview

    Wenn es das nicht war: Hast du wohl vergessen den EventHandler zu setzen -> Grundlagen



  • using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms;
    
    namespace Tastendrücken
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
     private void OnKeyUp(object sender, KeyEventArgs e) 
    { 
    
         Point location = this.button1.Location; 
    
        switch ( e.KeyCode ) 
        { 
            case Keys.Up: 
                this.button1.Location = new Point(location.X, location.Y - 10); 
                break; 
    
            case Keys.Down: 
                this.button1.Location = new Point(location.X, location.Y + 1); 
                break; 
    
        } 
       }
      } 
    
    }
    

    Das ist mein ganzer Code. Mit Form.KeyPreview weiß ich nicht wo das hingehören sollte und Eventhandler...
    ich habe mich zwar mit den Grundlagen beschäftigt aber das ist mir irgendwie entweder neu oder nicht wahr genommen.

    Ich würde nur gerne wissen wie das geht.



  • Ich kenne das hier persönlich nicht (hatte andere Bücher) aber es dürfte Dir weiterhelfen:

    http://openbook.galileocomputing.de/csharp/



  • Ich habe den EventHandler gesetzt aber er reagiert noch immer nicht.
    In diesem Buch habe ich nicht gefunden wie ich das mache.
    Ich habe jetzt auch Key.Preview auf true gesetzt aber er reagiert noch immer nicht auf meine Tastatureingaben.



  • In diesem Buch habe ich nicht gefunden wie ich das mache.

    Du sollst mit dem Buch erst einmal die Grundlagen lernen. Das Hirnlose rumbasteln bringt Dich nicht weiter und die Informationen die man Dir gibt nutzt Du nicht.



  • 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.htm

    public 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: 9783897214644

    aber 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 habe 😃

    Ich 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


Anmelden zum Antworten