C# 将新行从字符串插入“RichTextBox”?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/14467066/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Inserting new lines into a 'RichTextBox' from a string?
提问by Kolors
Currently in my application I have a string that is read in from an XML file however the whole string is concatenated together and I want to be able to split up the string over multiple lines of the 'RichTextBox' at specific points that I choose in the XML node for that string.
目前在我的应用程序中,我有一个从 XML 文件中读入的字符串,但是整个字符串连接在一起,我希望能够在我选择的特定点将字符串拆分为“RichTextBox”的多行该字符串的 XML 节点。
For example my string before formatting as it sits in the XML node:
例如我在格式化之前的字符串,因为它位于 XML 节点中:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus eleifend arcu vel tellus aliquam eget aliquet orci dignissim. Integer volutpat congue elementum. In commodo porta sem. Phasellus commodo consectetur hendrerit. Integer bibendum consequat elit nec ultricies. Fusce facilisis elit in justo facilisis sagittis. Aenean eget risus placerat dui hendrerit pharetra sed in neque. Maecenas vehicula iaculis lectus eget scelerisque. Fusce sed consequat elit.
Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英。Vivamus eleifend arcu veltellus aliquam eget aliquet orci dignissim。整数 volutpat congue elementum。在commodo porta sem。Phasellus commodo consectetur hendrerit。整数 bibendum 后果精英 neultricies。Fusce facilisis elit in justo facilisis sagittis。Aenean eget risus placerat dui hendrerit pharetra sed in neque。Maecenas vehicula iaculis lectus eget scelerisque。Fusce sed 后果精英。
The result I desire after formatting in my application:
在我的应用程序中格式化后我想要的结果:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus eleifend arcu vel tellus aliquam eget aliquet orci dignissim. Integer volutpat congue elementum. In commodo porta sem.
Phasellus commodo consectetur hendrerit. Integer bibendum consequat elit nec ultricies. Fusce facilisis elit in justo facilisis sagittis.
Aenean eget risus placerat dui hendrerit pharetra sed in neque. Maecenas vehicula iaculis lectus eget scelerisque. Fusce sed consequat elit.
Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英。Vivamus eleifend arcu veltellus aliquam eget aliquet orci dignissim。整数 volutpat congue elementum。在commodo porta sem。
Phasellus commodo consectetur hendrerit。整数 bibendum 后果精英 neultricies。Fusce facilisis elit in justo facilisis sagittis。
Aenean eget risus placerat dui hendrerit pharetra sed in neque。Maecenas vehicula iaculis lectus eget scelerisque。Fusce sed 后果精英。
Is it possible to split up one long concatenated string over multiple lines like this for a 'RichTextBox' by including the formatting directly within the XML node / string itself rather than hard coding where each new line needs to be?
是否可以通过将格式直接包含在 XML 节点/字符串本身中而不是在每个新行需要的位置进行硬编码,将一个长连接字符串拆分成多行这样的“RichTextBox”?
采纳答案by Kolors
I ended up finding my own solution to this problem; it's similar to what has been said but instead what this does is check for a specific character in the string and then remove it and in its place puts in a new line.
我最终找到了自己的解决方案;它与上面所说的类似,但它的作用是检查字符串中的特定字符,然后将其删除并在其位置放入新行。
myLongString = myLongString.Replace("@", "" + System.Environment.NewLine);
The example above simply checks the string for the @ symbol and then removes it and adds a new line. This then allows the string to be formatted with a new line wherever the specified keyword or symbol appears which means that the formatting of the string can be stored with the XML node and then interpreted.
上面的例子只是检查@符号的字符串,然后删除它并添加一个新行。然后,这允许在出现指定关键字或符号的任何地方使用新行对字符串进行格式化,这意味着字符串的格式可以与 XML 节点一起存储,然后进行解释。
回答by Mahdi Tahsildari
Yes. You can use Environment.NewLine
是的。您可以使用Environment.NewLine
richTextBox1.Text += "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus eleifend arcu vel tellus aliquam eget aliquet orci dignissim. Integer volutpat congue elementum. In commodo porta sem."
+ Environment.NewLine + Environment.NewLine +
" Phasellus commodo consectetur hendrerit. Integer bibendum consequat elit nec ultricies. Fusce facilisis elit in justo facilisis sagittis."
+ Environment.NewLine + Environment.NewLine +
" Aenean eget risus placerat dui hendrerit pharetra sed in neque. Maecenas vehicula iaculis lectus eget scelerisque. Fusce sed consequat elit.";
embeded new line is \n
嵌入的新行是 \n
richTextBox1.Text += "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus eleifend arcu vel tellus aliquam eget aliquet orci dignissim. Integer volutpat congue elementum. In commodo porta sem.\n\n Phasellus commodo consectetur hendrerit. Integer bibendum consequat elit nec ultricies. Fusce facilisis elit in justo facilisis sagittis.\n\n Aenean eget risus placerat dui hendrerit pharetra sed in neque. Maecenas vehicula iaculis lectus eget scelerisque. Fusce sed consequat elit.";