【轉】C#中判斷掃描槍輸入與鍵盤輸入

來源:互聯網
上載者:User

標籤:

提出問題:在收貨系統中,常常要用到掃描槍掃描條碼輸入到TextBox,當條碼無法掃描時,需要手工輸入。如果是掃描槍輸入時,我們將自動去判讀條碼,而手工輸入時,最終需要加按斷行符號鍵確認後判讀條碼。這時候我們就要判斷輸入裝置是手工還是掃描槍。嘗試的方法:

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 ;}至此, 問題解決,希望大家有更好的方法留言交流轉:http://www.cnblogs.com/yyknight/archive/2011/10/07/2200399.html

【轉】C#中判斷掃描槍輸入與鍵盤輸入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.