富文本框忽略换行符

本文关键字:换行符 文本 | 更新日期: 2023-09-27 18:35:02

我正在读取XML文件并更新RTB,如您所见。这发生在表单加载期间。问题是换行符没有得到正确处理。RTB 应该显示之前由我的应用程序生成的 url,并且由于换行符被忽略,因此 url 完全被破坏,如下所示:

http://XXXXXXXXX.com/Roberto/XXXXXXXXX.pdfhttp://xxxxxxxxxx.com/Roberto/xxxxxx.pdf

public Form1()
{
  InitializeComponent();
  tabControl1.SelectTab("tabPage1");
  XmlDocument doc = new XmlDocument();
  doc.Load(Path.GetTempPath() + "/Uploads.xml");
  XmlNodeList nl = doc.GetElementsByTagName("Uploads");
  foreach (XmlNode node in nl)
  {
    richTextBox1.AppendText(Environment.NewLine + node.InnerText + 
                                                  Environment.NewLine +"'t");  
  }
  this.listBox1.DragDrop += new DragEventHandler(this.listBox1_DragDrop);
  this.listBox1.DragEnter += new DragEventHandler(this.listBox1_DragEnter);
}

XML 文件

<Uploads>
  <upload>http://xxxxxxxxxx.com/Roberto/xxxxxxxxx.pdf</upload>
  <upload>http://xxxxxxxxxx.com/Roberto/xxxxxxxxx.pdf</upload>
</Uploads>

富文本框忽略换行符

最有可能的是,您需要在 RTB 上启用 Multiline 属性。可以在窗体设计器的属性选项卡中执行此操作,也可以在如下所示的代码中执行此操作。

richTextBox1.Multiline = true;

编辑

问题是下行。您需要选择"上传"元素,而不是单个"上传"父标签

XmlNodeList nl = doc.GetElementsByTagName("upload");

我最终遇到了同样的问题,是的:

  1. 我将富文本框设置为多行和自动换行
  2. 我尝试了几个换行符,包括System.Environment.Newline

在与不同产品相关的Microsoft博客上,我找到了改用文本框的解决方法。您也可以将其设置为多行。当我将框的文本设置为字符串(包括换行符(时,它们现在正确显示。

好像是个错误?对我来说,解决方法现在很好,因为我不需要格式化。

问候马蒂亚斯