2017-06-21 77 views
-2

我在C#中遇到RichTextBox問題。從.rtf文件到RichTextBox的路徑

當我嘗試負載RichTextBox的文字,如 「C:\用戶\ adasal \桌面\ raporty_handel \ RPT \ RTF \ bruegman.rtf」 從.rtf文件我gettingn類似 「C:_handel.rtf」

此代碼在Active Reports控制檯中寫入。

我的代碼:

string resoult = "C:\\Users\\adasal\\Desktop\\raporty_handel\\rpt\\rtf\\bruegman.rtf"  
System.IO.FileStream rtfCreate = System.IO.File.Create(resoult); 
System.Byte[] info = new System.Text.UTF8Encoding(true).GetBytes(resoult); 
rtfCreate.Write(info, 0, info.Length); 
rtfCreate.Close(); 

System.IO.FileStream streamRTF = new System.IO.FileStream(resoult, 
System.IO.FileMode.Open, System.IO.FileAccess.Read);  
this.RichTextBox1.Load(streamRTF, RichTextType.Rtf); 

有人能幫忙嗎?我想在報告中顯示整個路徑。

+0

你目前的例子對我來說沒有什麼意義,你能否試着解釋你到底想要做什麼?對我來說,它現在看起來像是在'resoult'指定的位置寫入文件名('resoult')到一個新文件中。由於'resoult'的內容不是有效的RTF,所以'RichTextBox'只會顯示你看到的破碎文本。您需要創建一個有效的RTF文件,以使RichTextBox能夠正確加載它。 – bassfader

+0

我想創建一個.rtf文件並將其插入到導致它的文本路徑中。 – adsal90

回答

0

您必須轉義在RTF中具有特殊含義的'\'字符。 例如:

public void ActiveReport_ReportStart() 
{ 
    string resoult = "C:\\Users\\adasal\\Desktop\\raporty_handel\\rpt\\rtf\\bruegman.rtf"; 
    this.RichTextBox1.RTF = resoult.Replace("\\", "\\\\"); 
} 
+0

你可以用「/」替換「\\」,例如string resoult =「C:/Users/rpt/rtf/bruegman.rtf」 –