Marker per Tastatur steuern

Beim Bewegen der Marker per Tastatureingabe wird immer der markierte Marker bewegt. Dieser ist auch in der Oberfläche selektiert.

Zum Bewegen der Marker wird das KeyDown-Event der Form benutzt. Dieses Event wird immer ausgelöst, wenn eine Taste gedrückt wird. Unter dem Parameter des Typs „KeyEventArgs“ befindet sich unter der „KeyCode“-Parameter der Wert der gedrückten Taste. Dieser Wert kann mit den erwarteten Werten verglichen werden. In diesem Fall sollen die Marker mit den Tasten [D], [A], [W] und [S] bewegt werden.

Um den Marker zu verschieben, wird das Property „Position“ verändert.

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.D)
    {
        try
        {
            axisGroup.SubMember.OfType<MarkerContainer>().First().SubMember.OfType<Marker>().ToArray()[dataGridView1.SelectedCells[0].RowIndex].Position += 1;
        }
        catch (Exception)
        {
            MessageBox.Show("There is no X-Axis to move!");
        }
    }
    else if (e.KeyCode == Keys.A)
    {
        try
        {
            axisGroup.SubMember.OfType<MarkerContainer>().First().SubMember.OfType<Marker>().ToArray()[dataGridView1.SelectedCells[0].RowIndex].Position -= 1;
        }
        catch (Exception)
        {
            MessageBox.Show("There is no X-Axis to move!");
        }
    }
    else if (e.KeyCode == Keys.W)
    {
        try
        {
            axisGroup.SubMember.OfType<MarkerContainer>().First().SubMember.OfType<Marker>().ToArray()[dataGridView1.SelectedCells[0].RowIndex].Position += 0.1;
        }
        catch (Exception)
        {
            MessageBox.Show("There is no Y-Axis to move!");
        }
    }
    else if (e.KeyCode == Keys.S)
    {
        try
        {
            axisGroup.SubMember.OfType<MarkerContainer>().First().SubMember.OfType<Marker>().ToArray()[dataGridView1.SelectedCells[0].RowIndex].Position -= 0.1;
        }
        catch (Exception)
        {
            MessageBox.Show("There is no Y-Axis to move!");
        }
    }
}