簡體   English   中英

如何在C#中同時檢測多個按鍵?

[英]How to detect more than one keypress simultaneously in C#?

我正在為自己的游戲使用地圖編輯器,並且使用箭頭鍵在地圖區域中滾動。 目前,我正在使用KeyDown事件,該事件在向上,向下,向左或向右滾動時效果很好-但我的問題是如何允許對角線滾動。 當前,如果我按住右箭頭,然后(按住右箭頭)然后按住向下箭頭,那么向下方向將代替向右滾動,而不是對角滾動至右下角。

例如,有沒有一種方法可以檢查在KeyDown事件中是否按下了另一個箭頭鍵? 如何應對不止一個鍵被按住的問題?

謝謝

不容易,第二次擊鍵的按下會阻止第一次重復。 您要做的是在KeyDown事件中記錄該鍵已按下。 在KeyUp事件中取消該狀態。 接下來,使用計時器(約250毫秒),並在其Tick事件中檢查按鍵的狀態。

最簡單的方法是使用Windows API調用獲取鍵盤上每個鍵的狀態,然后檢查您感興趣的鍵: 通過PInvoke獲得GetKeyboardState

您可以在KeyDown / KeyUp上調用它,檢查鍵盤的狀態並采取適當的措施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM