Sdílet prostřednictvím


Krok 5: Přidat MouseEnter obslužnou rutinu události pro jednotlivé zdi

Hra bludiště by byla více zábavná a náročná, jestliže odešle ukazatel myši zpět na začátek pokaždé, když se ukazatel myši dotkne zdi. Před dalším čtením zvažte, jak toto udělat.

Přidat MouseEnter obslužnou rutinu události pro jednotlivé zdi

  1. Přejděte na Návrhář formulářů a klikněte na některou z vaší nově přidané zdi.

  2. Přejděte na okno Vlastnosti a klikněte na ikonu Událost k zobrazení událostí pro danou zeď. Přejděte k události MouseEnter. Namísto dvojitého kliknutí zadejte text wall_MouseEnter a stiskněte klávesu Enter. Ikona Událost a okno Vlastnosti vypadá takto.

    Událost – ikona

    Událost – ikona

    Okno Vlastnosti zobrazující událost MouseEnter

    Okno Vlastnosti zobrazující událost MouseEnter

    Poznámka

    Při zadávání názvu události přímo do tabulky události v okně Vlastnosti způsobíte, že rozhraní IDE vytvoří obslužnou rutinu události s tímto názvem a připojí ji k události ovládacího prvku. Často chcete po rozhraní IDE zvolit názvy událostí, protože jsou to logické názvy a použití názvů usnadňuje ostatním uživatelům čtení a pochopení kódu. Pokud rozhraní IDE zvolí název pro obslužnou rutinu události, použije název ovládacího prvku a název události. V takovém případě jste nezměnili výchozí názvy vašich stěn, které jsou label4, label18, label25 atd. Takže pokud klepnete na tlačítko s názvem zdi label12, rozhraní IDE by mělo pojmenovat obslužnou rutinu události label12_MouseEnter. Zadáním názvu wall_MouseEnter si zvolíte více použitelný název. To je zvlášť důležité v případě, že používáte jednu obslužnou rutinu události pro více ovládacích prvků, což provedete později v tomto výukovém programu.

  3. Po stisknutí klávesy Enter, rozhraní IDE přidá novou obslužnou rutinu události pro vás a připojí ji k události zdi MouseEnter. Nově přidaný kód by se měl zobrazit takto v editor kódu. V jazyce Visual Basic, specifická jmenovka nemusí být Label8, jak je uvedeno v kódu.

    Private Sub wall_MouseEnter() Handles Label8.MouseEnter
    
    End Sub
    
    private void wall_MouseEnter(object sender, EventArgs e)
    {
    
    }
    
  4. Dále přidejte volání metody MoveToStart() spolu s komentářem vysvětlujícím metodu. Začněte tak, že přejdete na metodu a přidáte příkaz MoveToStart(). Technologie IntelliSense otevře okno a zobrazí se následující zpráva.

    Okno IntelliSense

    Okno IntelliSense

    Když jste přidali metodu MoveToStart(), rozhraní IDE ho přidalo do okna technologie IntelliSense. Komentář jazyka XML, které jste přidali, se zobrazí v popisu tlačítka. To je užitečné při psaní programů s mnoha metodami.

  5. Stisknutím klávesy Tabulátor zajistíte, že technologie IntelliSense dokončí název metody. Pokud píšete kód jazyka Visual C#, nezapomeňte přidat středník (;) na konci příkazu. Poté přidejte komentář nad příkaz. Váš kód by měl vypadat takto. V jazyce Visual Basic, specifická jmenovka nemusí být Label8, jak je uvedeno v kódu.

    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. Uložte program a spusťte jej. Přemístěte ukazatel myši na zeď, ke které jste připojili obslužnou rutinu události. (Pokud si nepamatujete, které z nich jste zvolili, přesuňte ukazatel myši nad jednotlivé zdi, dokud nenajdete tu pravou.) Ihned poté, co se jí dotknete, by měla odeslat ukazatel myši zpět na start.

    Dále chcete provést stejnou akci i pro zbytek stěn. Můžete napsat stejnou obslužnou rutinu události MouseEnter pro jednotlivé zdi. Ale proces by byl dlouhý, mělo by to za následek více řádků stejného kódu v programu a bylo by obtížné je měnit. Rozhraní IDE poskytuje snadnější způsob, jak připojit stejné obslužné rutiny události ke všem stěnám.

  7. Přejděte k Návrháři formulářů a z nabídky Úpravy klikněte na tlačítko Vybrat Vše.

  8. Podržte stisknutou klávesu Ctrl a klikněte na jmenovku Konec ke zrušení zaškrtnutí výběru. Toto by mělo ponechat všechny stěny a panely vybrané.

  9. Nyní přejděte na tabulku události na okno Vlastnosti. Posuňte zobrazení dolů k události MouseEnter a klikněte na políčko úpravy vedle ní. Měli byste vidět rozevírací šipku. Pokud klepnete na šipku, zobrazí se seznam všech obslužných rutin událostí v programu, které můžete pro tuto událost použít. V takovém případě se zobrazí finishLabel_MouseEnter obslužná rutina události, kterou jste přidali dříve a wall_MouseEnter, kterou jste právě napsali, jak je znázorněno na následujícím obrázku.

    Událost MouseEnter s obslužnými rutinami události

    Událost MouseEnter s obslužnými rutinami události

  10. Vyberte wall_MouseEnter. (Pokud vyberete nesprávné obslužné rutiny události nebo neúmyslně přidáte nové, můžete vybrat všechny stěny a panelu znovu, a pak zvolit správnou metodu.)

  11. Nyní by měla být hra bludiště více zábavná. Zkuste uložit a spustit. Pokud ukazatel narazí do zdi nebo přesunete ukazatel myši mimo bludiště a znovu zpět, program by měl automaticky přemístit ukazatel na počáteční bod bludiště.

Chcete-li pokračovat nebo znovu projít