winForm 输入框不可手动输入,只能扫描枪输入的话,常规思路是串口扫描枪,但这个方式成本比较高
下面这个思路,逻辑就是通过判断TextBox中KeyDown事件和KeyUp事件,键盘按下和松开的这一过程的时间长短,来判断是手动输入还是扫描枪录入,代码如下
//定义时间变量
private DateTime _dt;
//KeyDown按钮事件,记录当前时间
private void txttm_KeyDown(object sender, KeyEventArgs e)
{
_dt = DateTime.Now;
}
//KeyUp事件中比较两次时间
private void txttm_KeyUp(object sender, KeyEventArgs e)
{
DateTime _tempDt = DateTime.Now;
TimeSpan ts = _tempDt.Subtract(_dt);
if (ts.Milliseconds > 100)
{
//setTool("错误:禁止手工输入!", "N");
txttm.Text = "";//清空
}
}
本文介绍了一种低成本的方法,使得winForm输入框只能接受扫描枪输入,而不能手动输入。通过监听TextBox的KeyDown和KeyUp事件,比较按键按下和释放的时间间隔,来区分是手动输入还是扫描枪快速录入。

103

被折叠的 条评论
为什么被折叠?



