TextBox禁止手动输入但是允许刷卡输入

初步想法:是用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 ;
}

 

转载于:https://www.cnblogs.com/ATually/archive/2010/12/20/1909477.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值