繁体   English   中英

C#UI多个KeyDown事件?? Windows窗体应用程序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM