我正在使用C#开发一个软件,我需要它在特定表单打开时抓住所有键盘输入。
我有一个读卡器,可以将信息捕获为键盘。 我将打开弹出窗口告诉用户传递卡片,然后我需要捕获输入并检查我的数据库是否是有效的卡片。
当表单处于焦点时,我无法找到捕获键盘输入的方法。
有谁知道怎么做?
答案 0 :(得分: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事件处理程序。否则,你正在寻找像全局keyhook这样的东西,这要复杂得多。