只允许用扫码枪输入,不允许手输入,判断输入频率

只允许用扫码枪输入,不允许手输入,如何判断是扫码枪还是手输入呢?通过输入频率来判断,所以有了这个方法,自己可以根据情况调试时间

 private DateTime _dt = DateTime.Now;  //定义一个成员函数用于保存每次的时间点  
        //允许最大间隔时间 
        private int interval_time = 250;  
private void txtBarCode_KeyUp(object sender, KeyEventArgs e)
        { 
            //判断时间间隔,如果时间间隔大于250毫秒,则将TextBox清空          
            if (UserInput_IsEnabled(interval_time))              
            {
                //符合输入要求
                if (e.Key == System.Windows.Input.Key.Enter)
                {
                    this.lblResult.Content = this.txtBarCode.Text.Trim();
                    this.txtBarCode.SelectAll();
                    this.txtBarCode.Focus();
                }
            }
            else
            {
                //不符合输入要求
                txtBarCode.Text = ""; 
                this.lblResult.Content = ""; 
            }
        }
     
        /// <summary>
        /// 用户输入频率是否合法
        /// </summary>
        /// <param name="Max_Time">最大允许时间间隔频率</param>
        /// <returns></returns>
        private bool UserInput_IsEnabled(int Max_Time)
        {
            //清空剪切板内容
            Clipboard.Clear();
            //保存按键按下时刻的时间点   
            DateTime tempDt = DateTime.Now;
            //获取时间间隔      
            TimeSpan ts = tempDt.Subtract(_dt);
            //判断时间间隔,如果时间间隔大于50毫秒,则将TextBox清空          
            if (ts.Milliseconds > Max_Time)
            {
                _dt = tempDt;
                //不符合输入要求
                return false;
            }
            else
            {
                //符合输入要求
                return true;
            }
        }

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页