想在TextBox中显示的字符串中含有“\r”,却显示为口,怎么办?

lanruoshui 2011-06-03 10:07:54
TextBox的Multiline属性设置为真,想在TextBox中显示字符串,如“abc\r”
tbSend.Text ="abc\r";

可是运行之后显示的却是“abc口”
因为这个“abc\r”是一个指令,必须显示为这个,如果前面加上@,就变成“abc\\r”这样指令又变了,怎么能让它就显示为“abc\r”呢?
...全文
193 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanruoshui 2011-06-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zerodegrees 的回复:]
引用 10 楼 lanruoshui 的回复:
你可以自己试一下,textBox1.Text 的值是"abc\\r"了


很明显我是试过了啊,你试试看这个:
Console.WriteLine("abc\\r");
打出来的值就是abc\r。
[/Quote]
我是在CE下的Form调试的
zerodegrees 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lanruoshui 的回复:]
你可以自己试一下,textBox1.Text 的值是"abc\\r"了
[/Quote]

很明显我是试过了啊,你试试看这个:
Console.WriteLine("abc\\r");
打出来的值就是abc\r。
lanruoshui 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 anbam 的回复:]
.text = "abc\\r"//显示
.tag = "abc\r"//调用命令
[/Quote]

这样也不太好,之所以显示在TextBox上是因为这个指令用户是可以修改的,你设置到tag上之后,就算用户修改了也没有用,所以我觉得还是显示之前处理一下,发送之前再替换为原来的比较好。
anbam 2011-06-03
  • 打赏
  • 举报
回复
.text = "abc\\r"//显示
.tag = "abc\r"//调用命令
lanruoshui 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 kingdom_0 的回复:]
C# code
tbSend.Text ="abc\\r";

这样就没问题了,调试下看看.
[/Quote]
这样是有问题的,你自己调下看看。
lanruoshui 2011-06-03
  • 打赏
  • 举报
回复

string send = tbSend.Text.Replace(@"\r", "\r");

搞定了:)
kingdom_0 2011-06-03
  • 打赏
  • 举报
回复
tbSend.Text ="abc\\r";

这样就没问题了,调试下看看.
lanruoshui 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zerodegrees 的回复:]
fk。把我整的好晕啊。
textBox1.Text = "abc\\r";
楼主你别闹了,就是上面这样就行了,你把textBox1.Text 打出来看看。
textBox1.Text 的值就是你所要的"abc\r"。
[/Quote]
你可以自己试一下,textBox1.Text 的值是"abc\\r"了
porschev 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ojlovecd 的回复:]

引用 6 楼 lanruoshui 的回复:

刚才说的不够准确,我是想即又让它在tbSend上显示为“abc\r”,又想在读出来的时候也是“abc\r”,而不是“abc\\r”。

读出来的时候再把它换回来啊……
string str = tbSend.Text.Replace("\\\\","\\");
[/Quote]

读出来就变成\\了。。

你就用replace把\\替换成\
zerodegrees 2011-06-03
  • 打赏
  • 举报
回复
fk。把我整的好晕啊。
textBox1.Text = "abc\\r";
楼主你别闹了,就是上面这样就行了,你把textBox1.Text 打出来看看。
textBox1.Text 的值就是你所要的"abc\r"。
我姓区不姓区 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lanruoshui 的回复:]

刚才说的不够准确,我是想即又让它在tbSend上显示为“abc\r”,又想在读出来的时候也是“abc\r”,而不是“abc\\r”。
[/Quote]
读出来的时候再把它换回来啊……
string str = tbSend.Text.Replace("\\\\","\\");
lanruoshui 2011-06-03
  • 打赏
  • 举报
回复
刚才说的不够准确,我是想即又让它在tbSend上显示为“abc\r”,又想在读出来的时候也是“abc\r”,而不是“abc\\r”。
lanruoshui 2011-06-03
  • 打赏
  • 举报
回复
上面的方法都不行,按照你们的说法显示是变成我想要的“abc\r”了,但是我发指令时需要从这个TextBox中读出来,tbSend.Text 读出来之后指令就变成"abc\\r"了,相当于指令已经从“abc\r”变为"abc\\r"了!这样我发指令后肯定收不到正确的数据。因为发的数据就是错误的!
wtj2832 2011-06-03
  • 打赏
  • 举报
回复
tbSend.Text ="abc\\r";或者tbSend.Text = @"abc\r";
我姓区不姓区 2011-06-03
  • 打赏
  • 举报
回复
需要转义:
tbSend.Text ="abc\\r";
porschev 2011-06-03
  • 打赏
  • 举报
回复


tbSend.Text = @"abc\r";
ghost5216 2011-06-03
  • 打赏
  • 举报
回复
tbSend.Text ="abc\\r";

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧