Aus richTextBoy heraus KeyDown ausführen



  • Hallo,

    vorab der Code:

    //Menü Zeigen
    	private: System::Void richTextBox1_KeyDown(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {
    			if (e->KeyCode == Keys::Alt) {
    					if (this->toolStrip1->Visible == true) {
    						this->toolStrip1->Visible = false;
    						this->richTextBox1->Height = this->Height;
    					}
    					else {
    						this->toolStrip1->Visible = true;
    						this->richTextBox1->Height = this->Height - 25;
    					}
    			}
    	}
    

    Die RichtextBox nimmt den ganzen Platz der Form ein, nun soll, wenn man beim schreiben "ALT" drückt die richtextBox um 25px kleiner werden und der toolstrip sichtbar werden, das Problem ist keine Fehlermeldung sondern das beim drücken auf "ALT" nichts passiert.

    ich hab in der Form KeyPreview auf True aber trotzdem keine Änderung, und ich hab einfach keine Ahnung wo der Fehler stecken könnte, deshalb bitte ich um Hilfe!

    Mfg. 123k1



  • Hat keiner ne Idee?



  • Hi 123k1,

    ich habe nicht nur eine Idee, sondern auch die Lösung. 😉

    Da die "ALT-Taste" in einer Standard Windows Anwendung (fast) immer das Menü einblendet, ist die Taste auch als "Menu" definiert, deswegen solltest Du den Code so schreiben, dann funktioniert das auch mit dem Menu.

    if (e->KeyCode == Keys::Menu) 
    { 
            if (this->toolStrip1->Visible == true) 
            { 
                  this->toolStrip1->Visible = false; 
                  this->richTextBox1->Height = this->Height; 
            } 
            else 
            { 
                  this->toolStrip1->Visible = true; 
                  this->richTextBox1->Height = this->Height - 25; 
            } 
    }
    

    Gruß, Doug_HH



  • Alternativ kann man die Alt Taste auch auch KeyPressEventArgs::Modifiers auslesen.

    if(e.Modifiers == Keys.Alt)
                    MessageBox.Show("Alt");
    


  • Danke es funktioniert, das einzige Problem das noch besteht ist das nach dem Drücken der ALT-Taste der Focus die richtextbox verlässt und ernst nach erneutem drücken wieder zurückkehrt, somit muss man die Teste 2 drücken, ich weiß leider nicht wie man dies abstellen kann.



  • this->richTextBox1->Focus()
    


  • Hab ich mir auch schon gedacht, aber es geht immer noch nicht!



  • Zeig mal den Quellcode den Du geschrieben hast.



  • Ich hab es einmal nach:

    this->richTextBox1->Height = this->Height;
    

    eingefügt, und dann hab ich es versucht in die VisibleChange Methode der richtextbox einzufügen, beides hat nicht funktioniert!


Anmelden zum Antworten