KeyPress auslesen



  • Hi

    Ich habe ein Programm bei dem der Benutzer sich mittels Tasten (Hotkeys^^) zwischen verschiedenen Elementen des Programms hin und her bewegen soll. Allerdings bekomme ich immer -1 zurück. Weiss jemand was an diesem Code falsch ist?

    private: System::Void Form1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
    
    		char keypress=0x00;
    
    			if (_kbhit())
    			{
    				keypress = getch();
    
    				switch(keypress)
    				{
    					case 72:
    						//wechsle zu Fenster 1;
    					      break;
    
    					case 80:
    						//Wechsle zu Fenster 2
    					      break;
    
    					default:
    					break;
    				}
    			}
    		 }
    


  • Moin,

    wieso verwendest Du in der Methode Win32? ... KeyPressEventArgs liefert Dir alles was Du brauchst

    hand, mogel



  • Hmm wahrscheindlich aus Gewohnheit.
    Ist das erste mal, dass ich mich an C++.net heranwage.

    Dann werd ich mir das mal ansehen. Danke



  • private: System::Void Form1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {
        if(e->KeyCode == Keys::F1){
            //Window 1 
        }
        if(e->KeyCode == Keys::F2){
            //Window 2
        }
    }
    

    nur so als Beispiel...



  • Vermillion schrieb:

    Hmm wahrscheindlich aus Gewohnheit.
    Ist das erste mal, dass ich mich an C++.net heranwage.

    dan ein Hinweis ... die Events liefern Dir immer fast alles was Du brauchst



  • denjo303 schrieb:

    private: System::Void Form1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {
        if(e->KeyCode == Keys::F1){
            //Window 1 
        }
        if(e->KeyCode == Keys::F2){
            //Window 2
        }
    }
    

    nur so als Beispiel...

    Danke. Sieht soweit ganz gut aus nur gibts bei mir kein e->KeyCode ...
    Das einzige was dem nahe kommen würde wäre KeyChar aber den kann man nicht mit 💡 Keys::F2 vergleichen...

    EDIT: Die Hilfe hilft 🙂

    if ( e->KeyChar == (char)13 )
    


  • hast du auch statt

    private: System::Void Form1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
    

    das

    private: System::Void Form1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e)/*ohne 'Press'*/ {
    

    geschrieben?



  • Nein hatte ich übersehen jetzt gehts auch mit deinem Beispiel 🙂


Anmelden zum Antworten