RichTextBox忽略换行符

时间:2013-10-11 13:46:16

标签: c# winforms richtextbox

我正在阅读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>

2 个答案:

答案 0 :(得分:3)

最有可能的是,您需要在RTB上启用Multiline属性。您可以在表单设计器的属性选项卡中或在下面的代码中执行此操作。

richTextBox1.Multiline = true;

修改

问题在于以下内容。您需要选择“上传”元素而不是单个“上传”父标记

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

答案 1 :(得分:0)

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

  1. 我将Richtextbox设置为Multiline和Wordwrap
  2. 我尝试了几个换行符,包括System.Environment.Newline
  3. 在与其他产品相关的Microsoft博客上,我找到了使用TextBox的变通方法。您也可以将其设置为Multiline。 当我将文本框设置为包含换行符的字符串时,它们现在正确显示。

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

    此致 的Matthias