13 september 2011

Key events op een Form

Volgend programma demonstreert hoe je kan detecteren of en welke van de pijltjestoetsen ingedrukt en weer losgelaten worden.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        HandleKeyEvent(e, "down");
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        HandleKeyEvent(e, "released");
    }

    private void HandleKeyEvent(KeyEventArgs e, string state)
    {
        if (e.KeyCode == Keys.Up)
            infoLabel.Text = "Arrow up is " + state;
        if (e.KeyCode == Keys.Down)
            infoLabel.Text = "Arrow down is " + state;
        if (e.KeyCode == Keys.Left)
            infoLabel.Text = "Arrow left is " + state;
        if (e.KeyCode == Keys.Right)
            infoLabel.Text = "Arrow right is " + state;
    }
}

De events die ons hier interesseren zijn KeyDown (toets ingedrukt) en KeyUp (toets weer losgelaten). Door de property KeyCode te vergelijken met één van de voorgedefinieerde constanten in de klasse Keys, kan je exact bepalen om welke toets het gaat.

Dit geeft als uitvoer bijvoorbeeld:

KeyEvents

Bemerk ook het gebruik van een methode HandleKeyEvent om zoveel mogelijk dubbele code te vermijden.

Geen opmerkingen:

Een reactie plaatsen