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(提供带有所有键定义的
类)。