我似乎无法找到一种方法来捕获磁卡读卡器的输入。当它滑动时,输入进入活动文本编辑器,就像说记事本一样。
不幸的是,对文本框字段的关注不会起作用,因为我需要将其设为标签而不是文本框。因此,我需要一种方法来将USB设备的输入捕获到变量或标签。
有谁知道我可以用来做这个或任何更好的想法的.NET类?
答案 0 :(得分:4)
如果它是winforms应用程序,你可以做
private void Form1_Load(object sender, EventArgs e)
{
KeyPreview = true;
KeyPress += Form1_KeyPress;
}
private bool inputToLabel = true;
void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (inputToLabel)
{
label1.Text = label1.Text + e.KeyChar;
e.Handled = true;
}
else
{
e.Handled = false;
}
}
只要窗口具有焦点,按键字符就会转到标签的文本。
答案 1 :(得分:1)
我认为无论如何都不会阻止用户手动输入。我怀疑您已经模拟了键盘的读卡器。因此,为了能够从阅读器中读取,您必须接收键盘输入,键盘输入意味着用户可以键入他们喜欢的任何内容。
一种可能的解决方案是将读卡器更改为使用API读取卡的读卡器。
如果不能选择更好的读卡器,我认为最好的方法是使用按钮。单击该按钮时,打开一个包含所提供的代码@Bala R的新表单。但另外,在第一个键输入的1秒内关闭表格。这样可以防止用户手动篡改输入,但会为读者提供足够的时间来完成。