2017-06-16 71 views
0

我正在開發一個應用程序,掃描條形碼並將數據輸入到C#WPF應用程序的文本框中。問題是,當我掃描我的信息時,換行符消失。我已經將相同的輸入掃描到記事本和記事本++,並且它們似乎顯示換行符,但它不出現在文本框中。我甚至使文本框多行,並沒有工作。textbox不讀取在輸入中掃描

我認爲文本框正在過濾掉我的角色。有什麼辦法可以讓文本框不這樣做嗎?

所需的輸出

the 
cow 
jumped 
over 
the 
moon 

實際輸出

thecowjumpedoverthemoon 

這是我有我的文本框代碼

<TextBox x:Name="textbox_txt" TextWrapping="Wrap" AcceptsReturn="True" AcceptsTab="True" Margin="56,138,239.4,66.8" Background="White" AllowDrop="True" /> 

回答

1

掃描的文本可以使用Unix風格的換行符\n而Windows使用\r\n。嘗試:

var text = textbox_txt.Text.Replace("\n", "\r\n"); 

或者:

var text = textbox_txt.Text.Replace("\n", Environment.NewLine); 
+0

'textbox_txt.Text =「foo \ nbar \ rbaz」;'產生兩條換行符。剛剛測試過。 –

+0

嘗試了兩個輸入,但仍得到相同的結果。就像我說的那樣,就好像tex tbox在掃描儀輸入到文本框中時忽略了某些字符 – Stavros

+0

可以解釋你如何掃描條形碼?爲了進行測試,您是否使用某種外部軟件掃描條碼,然後將結果複製並粘貼到記事本,記事本++,文本框等中? –

0

貌似string你分配給你的TextBox\n分離。 嘗試使用SringBuilder

StringBuild sb = new StringBuilder(); 
sb.AppendLine("the"); 
sb.AppendLine("cow"); 
sb.AppendLine("jumped"); 
sb.AppendLine("over"); 
sb.AppendLine("the"); 
sb.AppendLine("moon"); 
textbox_txt.Text = sb.Tostring(); 

我剛剛進行過的例子,在你的用例,你必須只是你的掃描碼追加到sb