C#textbox控件区分扫码枪输入和键盘输入
2024-10-21 09:43:19
前言:
一般我们在某个UI界面输入内容的时候又不想人为的去键盘输入,这个时候就需要区分键盘输入和扫码枪的输入,从而禁止人为键盘输入内容,只能使用扫码枪扫码输入。就目前来说这种直插式扫码枪输入和键盘输入几乎一个道理,从本质上很难做区分。那就只能从输入过程来做判别,如下是我的个人见解。
1.找出区别:
扫码枪扫描过程是快速且很匀速的输入内容到光标指定位置。
键盘输入的过程是不匀速且间隔时间相对来说比较长。
2.代码实现:
Stopwatch sw = new Stopwatch();
private long lastdt = 0;//记录上次输入时间值
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (lastdt != 0)//判断是不是第一次输入
{
if ((sw.ElapsedMilliseconds - lastdt) > 50)//判断时间间隔,如果时间间隔大于50毫秒则判定人为输入
{
tBarID.Text = "";
sw.Stop();
lastdt = 0;
}
else
{
lastdt = sw.ElapsedMilliseconds;
}
}
else
{
sw.Start();
lastdt = sw.ElapsedMilliseconds;
}
}
}
3.还存在一定的弊端待完善。
最新文章
- Spring MVC 1
- 设置mariadb字符集为utf8
- Hibernate 配置 转(http://blog.csdn.net/b671900/article/details/39156065)
- Android Studio导入Project的方法
- 深入了解Qt(二)之元对象系统(Meta-Object System)
- VS预生成事件命令行 和 生成后事件命令行
- FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)
- BZOJ 1014 火星人prefix
- QT:窗口最小化时显示一个小浮标
- 【GIVENCHY商务休闲风格/白色/100%精梳棉/撞色拼接领/长袖衬衣】玛萨玛索男装网购商城
- Eclipse配置Git发布项目到Github
- 快速排序OC、Swift版源码
- SpringBoot实现多环境配置
- Linux常用命令大全(归类)
- Spring中@Transactional事务回滚(含实例详细讲解,附源码)
- windows下安装mysql-5.7.11-winx64
- codeforces 600E . Lomsat gelral (线段树合并)
- Linux运维故障排查思路
- C#搭建CEF(CEFGLUE) 环境。
- Python面试题(十二)