【问题标题】:C# Window_KeyUp() not workingC# Window_KeyUp() 不工作
【发布时间】:2013-05-29 01:56:10
【问题描述】:

嘿,我有这段代码:

private void Window_KeyUp(object sender, KeyEventArgs e)
{
    if (playing == false)
    {
        return;
    }
    if (e.KeyCode == Keys.D1)
    {
        pictureBox6.Image = Form.Properties.Resources.black_square_button;
        player.Stop();
        player.Close();
        playing = false;
    }
}

我不工作,但 Window_KeyDown() 工作。

我的代码有什么问题?

谢谢。

【问题讨论】:

  • 它的哪一部分不起作用?事件是否被触发?您确定处理程序已正确连接到表单和/或控制器吗?
  • 释放键后不会触发事件。
  • 您是否为特定控制器或表单设置了事件?我相信如果目标控制器处于焦点状态,就会调用 keyUp 方法。
  • 你有这个用于 Form KeyUp 事件处理程序的吗?
  • @Steve Iam 恐怕我没有。

标签: c# keyup


【解决方案1】:

KeyUp 事件(也称为 KeyDown 和 KeyPress)仅在表单具有时才会在表单级别触发

KeyPreview = true; 

MSDN here

如果表单将接收所有关键事件,则为 true;如果当前为 false 窗体上的选定控件接收关键事件。默认是 假的。

【讨论】:

  • 我已经定义了 KeyPreview = true;因为 KeyDown 工作正常。
  • 这很有趣,你在 KeyDown 事件中做了什么? e.Handled=true;
  • 停止由 KeyDown 事件触发的声音,同时改变按钮的图像,很简单但不起作用。
  • 您能否确认我已在表单设计器中挂钩 KeyUp 事件?
  • 哦,我是多么粗心,这是问题所在,现在可以了。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-06-23
  • 2013-01-20
  • 2014-07-09
  • 2016-12-15
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多