none
Windows Forms verstehe die Erklärungen aus Helft nicht RRS feed

  • Frage

  • Hallo Leute

    Gebe hier einfach mal den Text wieder und den Code, der eingefügt werden soll:

    Im nächsten Schritt sorgen wir dafür, dass unsere beiden Register auch dann auf die Eingabetaste reagieren, wenn keine der 

    Schaltflächen den Fokus hat. Im Register Einzelbild soll beim Drücken der Eingabetaste die Funktion Anzeigen gestartet werden

    und im Register Bilderschau die Funktion Auswählen. Die entsprechenden Zuweisungen setzen wir über die Eigenschaft AcceptButton

    für das Formular.

    Damit die beiden Register anders auf die Eingabetaste reagieren, müssen wir dieser Eigenschaft bei der Anzeige des jeweiligen Registers 

    einen anderen Wert zuweisen. Das geht am einfachsten über das Ereignis Enter im Bereich Fokus der jeweiligen Registerkarte. Dieses Ereignis

    tritt ein, wenn ein Steuerelement zum aktiven Steuerelement wird - zum Beispiel beim Wechseln zwischen den Registern. Die vollständigen 

    Methoden für die beiden Ereignisse finden Sie im folgenden Listing:

    private: System::Void tabPageEinzel_Enter(System::Object^ sender, System::EventArgs^ e)
    		 {
    			 AcceptButton = buttonAnzeigen;
    		 }
    
    private: System::Void tabPageSchau_Enter(System::Object^ sender, System::EventArgs^ e)
    		 {
    			 AcceptButton = buttonStarten;
    		 }

    Diesen Code habe ich ans Ende der Form1.h eingefügt.

    Übernehmen Sie die Anweisung für die Ereignisse jetzt bitte in Ihr Projekt. Achten Sie dabei sorgfältig darauf, dass Sie die Ereignisse tatsächlich

    für die beiden Register festlegen. Denn das Ereignis Enter gibt es für nahezu jedes Steuerelement, das den Fokus erhalten kann. Wenn Sie ganz

    sicher gehen wollen, wählen Sie die beiden Register über das Kombinationsfeld oben im Eigenschaftenfenster aus beziehungsweise kontrolllieren

    Sie vor dem Eingeben der Anweisungen noch einmal über das Kombinationsfeld, welches Steuerelement Sie ausgewählt haben.

    Hinweise:

    Bitte denken Sie daran, dass die Eigenschaft AcceptButton nur dann Wirkung zeigt, wenn der Fokus nicht auf einem Steuerelement

    steht, das selbst auch auf die Eingabetaste reagiert. Wenn beispielsweise eine Schaltfläche den Fokus hat, wird beim Drücken der Eingabetaste

    immer das Anklicken der Schaltfläche simuliert. Die Eigenschaft AcceptButtonwird dann schlicht und einfach ignoriert.

    Wie Sie gezielt eine bestimmte Taste in einem Eingabefeld auswerten, erfahren Sie im nächsten Studienheft.

    Stelle ich den Fokus für das Register Einzelbild auf Anzeigen ein und danach den Fokus für Bilderschau auf starten, dann wird auch 

    der Fokus von Einzelbild auf starten gesetzt. Versteh also nicht wie ich wo etwas an den Eigenschaften bzw. Ereignissen einstellen 

    muss, damit die beiden Funktionen funktionieren.

    Brauche dringend eine Erklärung, mit der ich etwas anfangen kann. Vielleicht eine Schritt für Schritt Anleitung. (Kochrezept)

    Lieben Dank 

    lempy



    Montag, 16. Juli 2012 19:28

Antworten

  • Hallo Koopakiller,

    Leider kann ich das damit auch nicht für jeden Tab so einstellen wie ich es denke. Werde mal warten was mein Dozent schreibt. Die erste Antwort hat mich 

    nur verwirrt, aber keinen wirkliche Klarheit gebracht. Werde mich dann wieder melden und Dir das Ergebnis mitteilen.

    lieben Dank 

    lempy

    • Als Antwort markiert lempy Donnerstag, 26. Juli 2012 14:08
    Dienstag, 17. Juli 2012 19:27

Alle Antworten

  • Hallo,

    für mich persönlich sieht es so aus, als solltest du ein TabControl einbauen, welches beim ändern des ausgewählten Tabs (Wenn der ein Tab den Fokus bekommt) auch die aktionen für den "AcceptButton" ändert. Wenn es so ist gehe mal wie folgt vor:

    1. Gehe in die Designansicht mit dem TabControl
    2. Markiere einen Tab und drücke F4, wechsle nun im Eigenschaftenfenetr auf die Ereignisse (Der Button mit dem Bliz an der Oberseite drücken)
    3. Suche das Ereignis "Enter" und mache einen doppelklick auf die Textbox rechts daneben
    4. Mache das auch mit dem anderen Tab
    5. Ergänze im neu entstehenden Code folgende beiden Zeilen:
      AcceptButton = buttonAnzeigen;
      bzw.
      AcceptButton = buttonStarten
      bei dem anderen Eventhandler

    Was AcceptButton genau bewirkt weiß ich leider nicht. Das müsstest du schon implementiert haben, bzw. wirst du noch tun.

    Ich hoffe, ich konnte dir etwas helfen. :)


    Koopakiller - http://koopakiller.ko.ohost.de/

    Dienstag, 17. Juli 2012 12:15
  • Hallo Koopakiller,

    Leider kann ich das damit auch nicht für jeden Tab so einstellen wie ich es denke. Werde mal warten was mein Dozent schreibt. Die erste Antwort hat mich 

    nur verwirrt, aber keinen wirkliche Klarheit gebracht. Werde mich dann wieder melden und Dir das Ergebnis mitteilen.

    lieben Dank 

    lempy

    • Als Antwort markiert lempy Donnerstag, 26. Juli 2012 14:08
    Dienstag, 17. Juli 2012 19:27