2017-06-16 70 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