Dodanie interakcji pomiedzy Interfejsem graficznym a klawiatura

0

Witam, probuje dodac do aplikacji interakcje ? pomiedzy interfejsem graficznym a klawiatura. Chce po prostu zrobic ze przy wcisnieciu np strzalki w dol obiekt ma poruszyc sie w dol, by to osiagnac dodalem event przedstawiony ponizej. Niestety jezeli wciskam strzalke w dol to po prostu zaznacza mi sie dany button w formie i przy kolejnym wcisnieciu strzalki przechodzi do nastepnego buttona i tak w kolko. Czy molby mnie ktos naprowadzic, jak powinienem sie za to zabrac ?

 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Down)
            {
                game.Move(Direction.Down, random);
            }
            UpdateCharacters();
        }
0

włącz KeyPreview na formie.

0

Gdy ustawilem w konstruktorze Formy

 KeyPreviev = true;

a nastepnie ruszylem strzalka w dol ten fragment kodu jest odpowiedzialny za ruch w dol private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
game.Move(Direction.Down, random);
}
UpdateCharacters();
}

Nic sie nie stalo. Czy widzicie gdzies tu blad ? Dodam ze metoda UpdateCharacters() robi to co ma robic, czyli aktualizuje mi wszystkie obiekty na formie.
0

Odpal debuger, ustaw breakpoint na pierwszej linii metody Form1_KeyDown i zobacz co sie dzieje. Ta metoda Form1_KeyDown jest w ogole podpieta pod wlasciwy event formy?

0

Ustawiłem breakpointa i sie okazalo, ze nawet nie uderza w niego. Dodam ze nadal zaznaczaja sie kontrolki pierwsze (tak mi sie wydaje).
Jezeli chodzi o event to jest on zaimplementowany dla dobrej formy.

1

Dziala ! stworzylem event KeyUp i przekopiowalem fragment kodu z tamtego eventa i dziala :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1