C# 如何让IsKeyDown方法在C中工作#
我不知道该如何使用此方法:C# 如何让IsKeyDown方法在C中工作#,c#,winforms,methods,input,C#,Winforms,Methods,Input,我不知道该如何使用此方法: System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key) 对象浏览器显示以下内容: 公共静态bool IsKeyDown(System.Windows.Input.Key) System.Windows.Input.Keyboard的成员 摘要: 确定是否按下指定的键。 参数: 键:指定的键。 返回值: 如果键处于关闭状态,则为true;否则,错误 好吧,这是键盘的一员,对吧?我使用了以下代码
System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key)
对象浏览器显示以下内容:
公共静态bool IsKeyDown(System.Windows.Input.Key)
System.Windows.Input.Keyboard的成员
摘要:
确定是否按下指定的键。
参数:
键:指定的键。
返回值:
如果键处于关闭状态,则为true;否则,错误 好吧,这是键盘的一员,对吧?我使用了以下代码: 键盘测试=新键盘()
但是当我进行类型测试,然后是点测试时,IsKeyDown不是一个选项。唯一的选项来自Windows.Forms成员。我错过了什么?谢谢。添加
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!");
}
IsKeyDown是静态的,所以您需要像
Keyboard.IsKeyDown()
不使用实例化对象
您还需要确保顶部有正确的using语句:
using System.Windows.Input;
编辑
进一步检查,键盘是一个静态类。。。所以你不能
Keyboard test=newkeyboard()代码>我想这是因为键盘类只适用于控制台应用程序。谢谢。即使窗体未处于活动状态,如何获取当前按下的键?换句话说,我需要一种方法,即使在我的程序最小化的情况下也能检测到按键。我不确定你的意思。当我键入您的代码时,按点后,该方法不会出现。除了PresentationCore,我还需要添加一个特殊的参考吗?@user1739957您应该能够简单地键入Keyboard.IsKeyDown(Key.a)
Nope!这不是一个选项后,我键入的宠儿@user1739957如果您有键盘测试=新键盘,您需要删除它,因为它无法编译。因此,当用户用鼠标单击按钮时,您检测到一个键已按下?:/是的。当我按住左键并用鼠标单击按钮时,我会看到消息框。非常感谢史蒂夫·韦伦斯。效果很好。我对它做了一点修改,即使表单最小化,它也能工作。事实上,当我按shift键输入第一个字母时,信息出现了。再次感谢!这有助于我检测单击菜单项时是否按住左键。Microsoft关于IsKeyDown
的帮助不完整,它提到您需要assembly PresentationCore(提供键盘
类),但没有提到WindowsBase(提供带有所有键定义的键
类)。