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!");
}
}
}