Schritt 5: Hinzufügen eines MouseEnter-Ereignishandlers für jede Wand

Das Labyrinthspiel würde mehr Spaß machen und anspruchsvoller sein, wenn der Mauszeiger des Benutzers wieder auf Start gesetzt wird, wenn der Zeiger eine Wand berührt. Bevor Sie weiter lesen, überlegen Sie, wie Sie dies erreichen können.

Link zu VideoEine Videoversion dieses Themas finden Sie unter bzw Tutorial 2: Create a Maze in Visual Basic - Video 3 Tutorial 2: Create a Maze in C# - Video 3.

So fügen Sie einen MouseEnter-Ereignishandler für jede Wand hinzu

  1. Wechseln Sie zum Windows Forms-Designer, und klicken Sie auf eine der neu hinzugefügten Wände.

  2. Wechseln Sie zum Eigenschaftenfenster, und klicken Sie auf das Symbol Ereignis, um die Ereignisse für diese Wand anzuzeigen. Verschieben Sie den Fensterinhalt nach unten zum MouseEnter-Ereignis. Anstatt darauf doppelzuklicken, geben Sie den Text "wall_MouseEnter" ein, und drücken Sie dann die EINGABETASTE. Das Symbol Ereignis und das Eigenschaftenfenster werden wie folgt angezeigt.

    Symbol "Ereignis"

    Ereignissymbol

    Anzeige des MouseEnter-Ereignisses im Eigenschaftenfenster

    Eigenschaftenfenster mit MouseEnter-Ereignis

    Hinweis

    Wenn Sie den Ereignisnamen direkt in die Ereignistabelle im Eigenschaftenfenster eingeben, weisen Sie die IDE an, einen Ereignishandler mit diesem Namen zu erstellen und ihn mit dem Ereignis des Steuerelements zu verbinden.In der Regel ist es besser, wenn die IDE die Ereignisnamen auswählt, da die Benennung auf logische Weise erfolgt und Namen die Lesbarkeit und Verständlichkeit des Codes für andere vereinfacht.Wenn die IDE einen Namen für einen Ereignishandler auswählt, verwendet sie den Namen des Steuerelements und den Namen des Ereignisses.In diesem Fall haben Sie den Standardnamen der Wände (label4, label18, label25 usw.) nicht geändert.Wenn Sie daher auf eine Wand mit dem Namen label12 klicken, wählt die IDE den Namen label12_MouseEnter für den Ereignishandler aus.Indem Sie den Namen wall_MouseEnter eingeben, wählen Sie einen geeigneteren Namen aus.Dies ist besonders wichtig, wenn Sie einen Ereignishandler für mehrere Steuerelemente verwenden, was später in diesem Lernprogramm der Fall sein wird.

  3. Nachdem Sie die EINGABETASTE gedrückt haben, fügt die IDE einen neuen Ereignishandler hinzu und verbindet ihn mit dem MouseEnter-Ereignis dieser Wand. Der neu hinzugefügte Code sollte im Code-Editor wie folgt angezeigt werden. In Visual Basic lautet die spezifische Bezeichnung möglicherweise nicht "Label8", so wie im Code gezeigt.

    Private Sub wall_MouseEnter() Handles Label8.MouseEnter
    
    End Sub
    
    private void wall_MouseEnter(object sender, EventArgs e)
    {
    
    }
    
  4. Als Nächstes fügen Sie der MoveToStart()-Methode einen Aufruf und einen Kommentar hinzu, der die Methode erläutert. Beginnen Sie, indem Sie zur Methode wechseln und die Anweisung MoveToStart() hinzufügen. Ein IntelliSense-Fenster mit dem folgenden Inhalt wird geöffnet.

    IntelliSense-Fenster

    IntelliSense-Fenster

    Als Sie die MoveToStart()-Methode hinzugefügt haben, hat die IDE sie dem IntelliSense-Fenster hinzugefügt. Der hinzugefügte XML-Kommentar erscheint in der QuickInfo. Dies ist nützlich, wenn Sie Programme mit zahlreichen Methoden schreiben.

  5. Drücken Sie die TAB-TASTE, um IntelliSense anzuweisen, den Methodennamen zu vervollständigen. Wenn Sie Visual C#-Code schreiben, denken Sie daran, am Ende der Anweisung das Semikolon (;) hinzuzufügen. Fügen Sie dann über der Anweisung einen Kommentar hinzu. Der Code sollte wie folgt aussehen. In Visual Basic lautet die spezifische Bezeichnung möglicherweise nicht "Label8", so wie im Code gezeigt.

    Private Sub wall_MouseEnter() Handles Label8.MouseEnter
        ' When the mouse pointer hits a wall or enters the panel,
        ' call the MoveToStart() method.
        MoveToStart()
    End Sub
    
    private void wall_MouseEnter(object sender, EventArgs e)
    {
        // When the mouse pointer hits a wall or enters the panel,
        // call the MoveToStart() method.
        MoveToStart();
    }
    
  6. Speichern Sie das Programm, und führen Sie es aus. Bewegen Sie den Mauszeiger über die Wand, mit der Sie den Ereignishandler verbunden haben. (Wenn Sie sich nicht mehr erinnern, welche Wand Sie auswählen sollen, bewegen Sie den Mauszeiger über jede Wand, bis Sie die richtige Wand finden.) Sobald Sie die Wand berühren, sollte der Mauszeiger zurück an den Start springen.

    Als Nächstes führen Sie dieselben Schritte für den Rest der Wände durch. Sie könnten den gleichen MouseEnter-Ereignishandler für alle Wände schreiben. Dieser Prozess wäre aber umständlich, würde zu zahlreichen identischen Codezeilen im Programm führen und ließe sich nur schwer ändern. Die IDE bietet eine einfachere Möglichkeit, den gleichen Ereignishandler mit allen Wänden zu verbinden.

  7. Wechseln Sie zum Windows Forms-Designer, und klicken Sie im Menü Bearbeiten auf Alles auswählen.

  8. Halten Sie die STRG-TASTE gedrückt, und klicken Sie dann auf die Bezeichnung Finish, um die Auswahl aufzuheben. Danach sollten alle Wände und der Bereich ausgewählt sein.

  9. Wechseln Sie jetzt zur Ereignistabelle im Eigenschaftenfenster. Verschieben Sie den Fensterinhalt nach unten zum MouseEnter-Ereignis, und klicken Sie auf das daneben angezeigte Eingabefeld. Sie sollten einen Dropdownpfeil sehen. Wenn Sie auf den Pfeil klicken, sehen Sie eine Liste aller Ereignishandler im Programm, die Sie für dieses Ereignis auswählen können. In diesem Fall sollten Sie den finishLabel_MouseEnter-Ereignishandler sehen, den Sie zuvor hinzugefügt haben, sowie den wall_MouseEnter-Ereignishandler, den Sie soeben geschrieben haben, wie im folgenden Bild gezeigt.

    MouseEnter-Ereignis mit Ereignishandlern

    MouseEnter-Ereignis mit Ereignishandlern

  10. Wählen Sie wall_MouseEnter aus. (Wenn Sie den falschen Ereignishandler auswählen oder unbeabsichtigt einen neuen hinzufügen, können Sie wieder alle Wände und den Bereich auswählen und dann die richtige Methode auswählen.)

  11. Jetzt sollte das Labyrinthspiel mehr Spaß machen. Versuchen Sie, das Spiel zu speichern und auszuführen. Wenn der Zeiger eine Wand trifft oder wenn Sie den Zeiger aus dem Labyrinth und wieder zurück bewegen, sollte das Programm den Zeiger wieder automatisch auf den Startpunkt des Labyrinths positionieren.

So fahren Sie fort oder überprüfen die Angaben