2013-10-11 114 views
1

我正在讀取XML文件並更新RTB,如您所見。這發生在表單加載。麻煩在於換行符沒有得到正確處理。該RTB是爲了顯示我的應用程序之前生成的URL,並因爲新行會被忽略URL的得到完全錯位是這樣的:RichTextBox忽略換行符

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> 
+3

最可怕的網址永遠 – Jonesopolis

+0

你確定,這個問題是不是在你的XML文件?你是否通過了foreach循環,每個URL都在一個單獨的字符串中? –

+0

是的,絕對。當我離開工作時,昨天正確處理的是幾乎不可信的事情。今天我進來了,一切都一樣,但RTB的行爲不同。 – Sai

回答

3

很可能,您需要在RTB上啓用Multiline屬性。您可以在表單設計器的屬性選項卡中或代碼中執行此操作,如下所示。

richTextBox1.Multiline = true; 

EDIT

的問題是以下線。您需要選擇「上傳」元素不是單一的「上傳」父標籤

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

對不起,我剛剛注意到我的問題中的網址顯示在一行中。 Multiline設置爲true,我無法正確顯示它(因爲它顯示在我的RTB中)。給你一個想法。在第一個網址的第一行3/4處顯示,其餘1/4被包裝到下一行,並與第二個網址一起顯示爲1個字符串。 – Sai

+0

你可以在你的問題體中包含實際XML中的代碼片段嗎? – EkoostikMartin

0

我結束了同一個問題,是的:

  1. 我設置RichTextBox中以多行和自動換行
  2. 我已經試過幾個換行符包括System.Environment.Newline

在Microsoft博客涉及到不同的產品,我發現使用文本框,而不是一個解決方法。您也可以將其設置爲Multiline。 當我將文本框設置爲包含換行符的字符串時,它們現在可以正確顯示。

似乎是一個錯誤?對我來說,現在解決方法很好,因爲我不需要格式化。

問候, 馬蒂亞斯