C# RichTextBox不支持“\r";或CR,并替换“\r";加上\";
我试图在windows窗体中为RichTextBox控件设置一个数据字符串,但RichTextBox文本属性将所有出现的“\r”替换为“\n” 我还尝试重新替换“\n”: RichTextBox.Text.Replace(“\n”、“\r”)和RichTextBox.Text.Replace(“\n”、“\r\n”)但不幸的是运气不佳C# RichTextBox不支持“\r";或CR,并替换“\r";加上\";,c#,string,winforms,newline,richtextbox,C#,String,Winforms,Newline,Richtextbox,我试图在windows窗体中为RichTextBox控件设置一个数据字符串,但RichTextBox文本属性将所有出现的“\r”替换为“\n” 我还尝试重新替换“\n”: RichTextBox.Text.Replace(“\n”、“\r”)和RichTextBox.Text.Replace(“\n”、“\r\n”)但不幸的是运气不佳 RichTextBox1.Text = "Abhi\rRa\r123"; //Textbox stores as Abhi\nRa\n123 RichTextB
RichTextBox1.Text = "Abhi\rRa\r123"; //Textbox stores as Abhi\nRa\n123
RichTextBox1.Text = this.RichTextBox1.Text.Replace("\n", "\r"); //Silly as .Text will eventually replace \r to \n.
如何允许字符串存储在带有“\r”的文本框中,而不让“\r”替换为“\n”
提前感谢,
RichTextBox
似乎有一个属性Text
,但Rtf
属性是真实的,也是唯一存储文本的地方
添加包含\r
(或\r\n
)的文本时,它将转换为\par
,位于Rtf
属性中。当您将文本
复制回某个地方时,它将从Rtf
重建,用常规RTB换行符替换\par
,即\n
所以:它理解\r
,但它不存储它
(顺便说一句:如果添加包含相反顺序的文本:\n\r
它将转换为两个\par
s。)
因此,如果要保留
\r
文件,请在从文本中复制后使用替换(“\r”,“\n”)
,或者将其存储在其他地方。何必麻烦呢?需要时,您可以随时将字符替换回原处。-注意RTB是关于格式化文本的;它希望在需要的地方包装文本,并使用段落而不是换行符。和。直接更改文本将打乱以前的格式。我需要在前端文本框中用“\r”显示此字符串。即使我将它存储在其他地方,最后我还是需要在文本框中填充它,然后再将其显示给用户。那么,我需要在前端文本框中显示带“\r”的字符串是什么意思呢?“在前端文本框中显示带“\r”的字符串”意味着,当字符串显示在文本框中时,我需要在字符串中保留\r,并在下一行中生成以下字符串。例如:假设字符串是:“Abhi\rRana”,那么在文本框中,我需要在1行中显示Abhi,在下一行中显示Rana,这里\r的行为就像\n是我所想的一样。实际上的文本框和RichTextBox都是这样做的,不是吗?这两个字符在这里是等价的。当然,当使用文本框时,您必须打开MuliLine
。不,这就是这里的重点,现在rich TextBox将“Abhi\rRana”转换为“Abhi\nRana”,然后在第一行显示Abhi,在下一行显示Rana。但在我的项目中有一个功能可以跟踪段结束分隔符是否为换行符。例如:010即“\n”或013即“\r”。现在,我希望段分隔符为013,即“\r”,但RichTextBox会自动将其转换为010,即“\n”。