2012-10-20 53 views
0

我無法弄清楚如何得到這個方法的工作:如何獲得IsKeyDown方法在C#中工作

System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key) 

對象瀏覽器說以下內容:

public static bool IsKeyDown(System.Windows.Input.Key key)
會員System.Windows.Input.Keyboard
摘要:
確定是否按下指定的鍵。
參數:
鍵:指定的鍵。
返回值:
真,如果鑰匙處於關閉狀態;否則,是錯誤的。

好了,所以它的鍵盤中的一員,對不對?我使用了下面的代碼: Keyboard test = new Keyboard();

但是當我鍵入測試,然後點,IsKeyDown是不是一種選擇。唯一的選擇來自Windows.Forms成員。我在這裏錯過了什麼?謝謝。

+0

我認爲這是因爲'Keyboard'類只適用於控制檯應用程序。 – quantum

+0

謝謝。即使表單不活躍,我如何獲得當前按下的鍵?換句話說,即使我的程序最小化,我也需要一種能夠檢測按鍵的方法。 – FrostyFire

回答

5

PresentationCore.dll添加組件作爲參考。

添加WindowsBase.dll組件作爲參考。

測試代碼:

private void buttonMisc_Click(object sender, EventArgs e) 
{ 
    if (System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key.LeftShift) == true) 
     MessageBox.Show("Got it!"); 
} 
+0

因此,當用戶使用鼠標單擊按鈕時,您正在檢測到按鍵? :/ –

+0

是的。當我按住左移鍵並用鼠標單擊按鈕時,我會看到消息框。 –

+0

非常感謝Steve Wellens。它效果很好。我稍微修改了一下,即使在表單最小化的情況下,它也能正常工作。事實上,當我按下第一個字母的換檔時,信息出現了。再次感謝! – FrostyFire

4

IsKeyDown是靜態的,所以你需要使用像

Keyboard.IsKeyDown() 

不是以實例化對象。

你還需要確保你有using語句正確的頂部:

using System.Windows.Input; 

編輯

在進一步的檢查,鍵盤是一個靜態類......這樣你就可以」 t Keyboard test = new Keyboard();

+0

我不確定你的意思。當我輸入你的代碼時,按下點後,該方法不會出現。除了PresentationCore之外,我還需要添加一個特殊的參考嗎? – FrostyFire

+0

@ user1739957你應該可以簡單地輸入'Keyboard.IsKeyDown(Key.A)' –

+0

不需要!在我輸入骰子後它不是一個選項! – FrostyFire