2016-02-12 124 views
2

我想写时,按下空格键的事件处理程序,但它给出了错误库进口需要“键盘”和“钥匙”

名称“键(或键盘)”不存在于当前的情况下。

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

对吗?如果是的话,我需要进口什么?如果不是,我需要做什么才能做到这一点?

谢谢!

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

空间压在你的应用程序或任何何苦呢? – Jacobr365

+0

按下我的应用程序中的空间。 – MattyAB

回答

0

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

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

不要混合这两个。

KeyBoard.IsKeyDown需要它来自WindowsBase.dll,而不是一个Keysenum参数Keyenum参数。

更新

我,现在你正在开发一个通用的Windows应用程序看到的。

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

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

参考在我的项目:

References

+0

好吧,但我得到VirtualKey下的错误 当前上下文中不存在名称'VirtualKey'。 – MattyAB

+0

我在Visual Studio 2015中创建了一个新的“空白应用程序(通用Windows)”。使用项目文件中的引用更新了答案。我没有提及'VirtualKey'的任何问题。 –

0

见System.Windows.Input或System.Windows.Forms的取决于你的应用结构。

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

+0

当我使用System.Windows.Forms添加 ; 我得到 类型或命名空间'Forms'不存在于命名空间'System.Windows'中(您是否缺少程序集引用?) 而且当我把 使用System.Windows.Input; 我在整个事情下得到一条绿线,说 'System.Windows.Input'的Using指令出现在此命名空间中。 使用指令是不必要的。 – MattyAB