2016-02-12 125 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