[英]C# UI multiple KeyDown Events ?? windows form application
我正在使用WindowsForm应用程序以C#在最小UI的mp3播放器上工作。
目前,我有公开播放和暂停歌曲的方法。
因为我希望UI最小化,所以我只显示正在播放的歌曲的文件名。
现在的问题是,当我尝试为每种方法分配一个KeyDown事件时。
因为在我的表单中,我都可以选择并将KeyPress事件映射到为Empty表单,但是它只能容纳1个KeyDown事件,这意味着我只能运行1个方法。
我该如何解决?
我假设可以使用KeyPress和KeyUp事件来运行其他2种方法,但是我想有一个更聪明的解决方案?
我的代码的一部分:在此示例中,OpenFile可以工作...但是Play不能同时工作,因为我想还没有为其分配任何EventHandler。 但是,由于我不想在UI中使用任何按钮,所以该怎么办?
我也不想要传统的快捷方式命令。 像Ctrl +键。
private void o(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.O)
{
openFileDialog1.ShowDialog();
}
}
private void p(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.P)
{
player.Play();
}
}
只是
private void o(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.O)
{
openFileDialog1.ShowDialog();
}
else if (e.KeyCode == Keys.P)
{
player.Play();
}
}
您可能只想定义一个事件处理程序,但是可以检查是否按下了几个键。
我个人将其放入案例声明和单个方法/函数中。 这样,您可以在没有if / thens网络的情况下进行扩展。
private void o(object sender, KeyEventArgs e) {
switch (e.KeyCode) {
case Keys.O:
openFileDialog1.ShowDialog();
break;
case Keys.P:
player.Play();
break;
default:
break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.