WPF输入框不允许手输,只能扫码

本文介绍了如何在WPF应用中设置输入框只允许通过扫码器输入,不允许用户手动键入。通过监听KeyDown和KeyUp事件,比较按键间隔时间来判断输入方式,若超过一定阈值(例如50毫秒),则认为是手动输入并进行提示及清空输入。此方法可以确保数据录入的安全性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WPF输入框如何做到不允许手动输入,只能通过扫码器扫码输入???

首先前台在输入框新建事KeyDown和KeyUp

<PasswordBox
                            Name="txtName"
                            Width="160"
                            Height="30"
                            FontSize="13"
                            KeyDown="TxtName_KeyDown"
                            KeyUp="TxtName_KeyUp"
                            TabIndex="0"
                            Password="" />

后台代码中,声明时间变量  DateTime _dt = DateTime.Now;

在KeyDown事件中

 private void TxtName_KeyDown(object sender, KeyEventArgs e)
        {
            _dt = System.DateTime.Now;
        }

在KeyUp事件中

private void TxtName_KeyUp(object sender, KeyEventArgs e)
        {
            DateTime _tempDt = System.DateTime.Now;
            TimeSpan ts = _tempDt.Subtract(_dt);
            if (ts.Milliseconds > 50)
            {
                MainApp._MessageDialog.Show("禁止手输");
                txtName.Password = "";//清空
                return;
            }
            if (e.Key == Key.Enter)
            {
                LoginValidate();
            }
        }

其中50的单位为毫秒

大功告成!!!!!!!!!!!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远都是小白的小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值