2017-08-29 55 views
-3

我正在开发一个使用C#的软件,我需要它在特定窗体打开时捕获所有键盘输入。当特定窗体打开时捕获所有键盘输入

我有一个读卡器,可以捕获信息作为键盘。 我会打开一个弹出窗口告诉用户通过卡,然后我需要捕获输入,并检查我的数据库,如果这是一个有效的卡。

当表单处于焦点时,我无法找到捕获键盘输入的方法。

有谁知道该怎么做?

+0

你好,欢迎来到Stack Overflow!当询问有关由您的代码引起的问题的问题时,如果您提供可用于重现问题的代码,您将得到更好的答案。请参阅https://stackoverflow.com/help/mcve以帮助您创建最小,完整和可验证示例。 – Baddack

+2

只是出于好奇,你是如何寻找一种方法来捕获键盘输入,你没有找到任何答案?搜索这个网站变成了几个... https://stackoverflow.com/search?q =捕获+键盘+输入。 –

回答

1

表单包含一个名为“KeyPress”的事件,该事件可用于您正在尝试执行的操作。单击属性中的小闪电图标查看您的事件,双击“KeyPress”连接方法。

如果你期待一个以上的按键(换句话说,如果你想要,表示卡数数的长字符串),您将需要输入一个字符存储在这样的时刻:

// add a field to capture the input 
string allInput = ""; 

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    allInput += e.KeyChar; // adds the last character pressed to the string 
} 

请注意,如果您的注意力集中在文本框之类的东西上,那么文本框将接收到KeyPress事件而不是表单。如果只有少数几个,则可以将相同的KeyPress事件处理程序添加到表单中的每个控件。否则,你正在寻找像全球钥匙扣这样的东西,这更复杂。

+0

非常感谢!有效! 对不起,这个白痴的问题,但我从来没有与C#之前 –

+0

很高兴它帮助!如果你发现代码有用,一个接受的答案将不胜感激。 –

+0

我试图接受它,但由于我刚刚创建了我的帐户,似乎我没有足够的信誉来评价它! –

相关问题