c# winform 中怎样让一个文本框可以用扫描枪输入,而不能用键盘输入

 我来答
一点设计演示
高粉答主

2015-10-22 · 职场/教育各类模板,衷于原创
一点设计演示
采纳数:874 获赞数:83614

向TA提问 私信TA
展开全部

尝试的方法:

     1.将TextBox属性设为ReadOnly=true。结果:无法输入。

     2.在TextBox的KeyPress事件中设置属性e.handle=true。结果:扫描枪输入时也会触发KeyPress事件,因此也不能输入。

     3.在TextBox的ValueChanged事件中判断结果。结果:扫描枪也是一个一个字符输入,不是一次性将整个条码输入。

     思考:扫描枪其实在输入上与键盘完全相似。但是人工输入和扫描设备输入的区别在于,扫描设备输入速度比较快而且时间间隔比较平均。

     实验:

 解决方法:

        Private DateTime _dt = DateTime.Now;  //定义一个成员函数用于保存每次的时间点
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            DateTime tempDt = DateTime.Now;          //保存按键按下时刻的时间点
            TimeSpan ts = tempDt .Subtract(_dt);     //获取时间间隔
            if (ts.Milliseconds > 50)                           //判断时间间隔,如果时间间隔大于50毫秒,则将TextBox清空
                textBox1.Text = "";
            dt = tempDt ;
        }

       至此, 问题解决。

夜月风雨之神
2014-02-23 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:20%
帮助的人:55.8万
展开全部
改ReadOnly属性为True;该属性值影响键盘输入,不影响代码输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhxycolor
2014-02-23
知道答主
回答量:19
采纳率:0%
帮助的人:5万
展开全部
用串口扫描枪,读取串口命令。
扫描枪是完全模拟键盘的设备,如果屏蔽按键的话,则将扫描枪一起屏蔽了。所以,建议用串口扫描枪。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baby3001
2014-02-23 · 超过34用户采纳过TA的回答
知道答主
回答量:193
采纳率:100%
帮助的人:94.4万
展开全部
设备输入,和键盘手工输入最大的区别楼主想想是什么?是速度。

设计思路:
文本框KEYPRESS事件 。 第1个字符输入到第N个字符,不能超过某个时刻(例如4个字符以上就超过1秒),如果超过1秒文本清空。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幸巴达
2014-02-23 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2468万
展开全部
实线onkeydown事件,返回失败就行了。

还有你得考虑到扫描码不清晰,需要手工输入的情况。
事实上,如果是条码,很可能会出现这种情况。二维码没办法。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式