初步想法:是用TextBox.ReadOnly=true;但是这样连刷卡输入都会被禁掉

第二种想法:判断是键盘输入还是用户刷卡 但是怎么判断呢 --键盘输入应该触发的是KeyDown事件之类的 那刷卡呢 结果也是触发的相同事件

第三种想法——迂回:因为卡号是特定长度的 刷卡在短时间内就能输入到特定长度 而用户输入至少也要4s以上 通过这个时间判断 便可以分辨出来时手动输入还是刷卡输入

 

我用了一个Timer控件 经过调试其属性Internal设置为200ms

代码如下:

 

代码
private void timer1_Tick(object sender, EventArgs e)
{
if (textBoxX1.Text.Length != textBoxX1.MaxLength)
{
//每隔特定时间检查文本框内容长度是否等于最大长度
timer1.Enabled = false;
textBoxX1.Text
= "";

}
}

private void textBoxX1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
//在向文本框输入内容时,会先触发文本框的这个事件
timer1.Enabled = true;
}

 

相关文章:

  • 2021-10-01
  • 2022-01-19
  • 2022-12-23
  • 2021-11-29
  • 2021-10-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2021-07-22
  • 2022-01-17
相关资源
相似解决方案