我有條形碼掃描儀。我需要從條形碼中將字符串捕獲到文本框中。文本框中的最後一個詞將由來自條形碼掃描儀的多個代碼組成。 我應該使用哪些事件?WPF文本框事件捕獲多個字符
例如: 條形碼發送值123
。
我試過PreviewTextInput
事件和e.Text
,但它只捕獲到第一個字符1
。如何在使用條形碼掃描器時將所有添加的字符添加到文本框?
我有條形碼掃描儀。我需要從條形碼中將字符串捕獲到文本框中。文本框中的最後一個詞將由來自條形碼掃描儀的多個代碼組成。 我應該使用哪些事件?WPF文本框事件捕獲多個字符
例如: 條形碼發送值123
。
我試過PreviewTextInput
事件和e.Text
,但它只捕獲到第一個字符1
。如何在使用條形碼掃描器時將所有添加的字符添加到文本框?
文本框不會失去任何東西。如果e.Text
是"1"
,那麼它只意味着您的掃描儀將字符逐個發送到TextBox
。意思是每增加一個角色就會得到一個事件。
你的方法真的很奇怪。對條形碼,掃描儀不瞭解。它只是顯示文本。爲什麼你問,如果你的掃描儀完成掃描?這是沒有意義的。單獨留下差TextBox
。如果您想知道掃描過程何時完成,您應該爲班級添加適當的事件,這實際上是讀取條形碼。然後,在此事件觸發後,您應該通過TextBox.Text
或使用其他方法(例如通過訪問viewmodel屬性)訪問所產生的字符串。
編輯:事件與wpf事件,是你的控制需要「鍵盤焦點」,如果你想它接收鍵盤事件。如果您顯示MessageBox
,則您的TextBox
失去焦點,因此不再接收事件。再次,離開TextBox
單獨。您需要編寫一個專門的類(即BarcodeReader
),它將爲您處理鍵盤事件,然後在讀取條形碼時觸發事件。您可以在BarcodeReader
中使用Keyboard類來處理按下的按鈕。
如果您使用的是後端C#,那麼你可以看看這個問題:Reading bar codes using wpf application
我的條形碼工作方式類似於我認爲它模擬鍵盤,所以它發送字符流(或當我不使用任何事件對文本框和使用掃描器然後(我發送代碼'123'),將在文本框中有'123' ..但是當我嘗試在一些事件('TextChanged'或'PreviewTextInput')中捕獲它只捕獲第一個字符('1'),其餘2個字符消失 – Maarty
看看這個鏈接:http://dotnettrails.wordpress.com/2010/03/11/capturing-barcode-scan-using-c/它給你兩個選擇:使用計時器來延遲text_changed事件或在keyUp事件中捕獲回車鍵(它假定條形碼掃描器將在掃描結束時發送回車符) – Riv