if (e.KeyData == Keys.A)
{
foreach (var labels in lblcollection)
{
if (labels.BackColor == Color.Blue)
{
if (item.Text == "A")
{
timer2.Start();
addbullet();
}
}
}
}
我如何在不手动执行的情况下对键盘上的所有字母重复此操作?有捷径吗?类似于:
“按钮(发送者)”
几乎每个键都编写它,这几乎就是您要做的方法。 Windows Forms *中没有预先存在的快捷方式系统。 e.KeyData是此操作的发送者,执行它甚至不需要强制转换。
*嗯,有一个。但这仅适用于Keyboard-only Navigation of the menu。因此可能不是您要寻找的机器人。
您可以使用switch / case块对此进行一些整理。键是一个枚举,因此,即使没有新的模式匹配支持,您也可以使用它。
您通常可以使用收藏夹来更换开关/外壳。想到Dictionary<Keys, Action>
。使用that和Lambda函数,您几乎可以将其忽略。
但是,如果您打算在此处使用任何快捷键,它们也将跨入命令模式。模式的想法是,您有一堆命令和几种调用它们的方法(热键,按钮,MenuItems)。