【问题标题】:Library imports requires for 'Keyboard' and 'Keys'库导入需要“键盘”和“键”
【发布时间】:2016-05-24 04:40:00
【问题描述】:

我正在尝试为按下空格键编写一个事件处理程序,但它给出了错误

当前上下文中不存在名称“键(或键盘)”。

我猜我缺少这两种方法的一些库导入。

我说的对吗?如果是这样,我需要做哪些进口?如果不是,我需要做什么才能完成这项工作?

谢谢!

private void KeysDown(object sender, KeyEventArgs e)
{
    if (Keyboard.IsKeyDown(Keys.Return))
    {
        //do something
    }
}

【问题讨论】:

  • 在您的应用程序中按下空间还是在任何地方按下?
  • 我的应用程序中按下了空格。

标签: c# xaml universal


【解决方案1】:

Keysenum 来自System.Windows.Forms.dll。 (WinForms)

Keyboard.IsKeyDown 来自PresentationCore.dll。 (WPF)

不要把这两者混在一起。

KeyBoard.IsKeyDown 采用来自WindowsBase.dllKey enum 参数,而不是Keys enum 参数。

更新

我现在看到您正在开发通用 Windows 应用程序。

在这种情况下你应该这样做:

private void KeysDown(object sender, KeyEventArgs e)
{
    if (e.VirtualKey == VirtualKey.Enter)
    {
        //do something
    }
}

我项目中的参考资料:

【讨论】:

  • 好的,但是我在 VirtualKey 下得到错误 The name 'VirtualKey' does not exist in the current context.
  • 我在 Visual Studio 2015 中创建了一个新的“空白应用程序(通用 Windows)”。用我在项目文件中的引用更新了答案。参考VirtualKey,我没有任何问题。
【解决方案2】:

请参阅 System.Windows.Input 或 System.Windows.Forms,具体取决于您的应用程序结构。

https://msdn.microsoft.com/en-us/library/system.windows.input(v=vs.110).aspx

【讨论】:

  • 当我使用 System.Windows.Forms 添加时;我得到命名空间“System.Windows”中不存在类型或命名空间“Forms”(您是否缺少程序集引用?)当我使用 System.Windows.Input;我在整个事情下得到一条绿线,说“System.Windows.Input”的使用指令以前出现在这个命名空间中。不需要使用指令。
猜你喜欢
  • 1970-01-01
  • 2019-02-13
  • 2018-02-01
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多