C# 如何通过忽略.rtf文件格式的StreamReader读取.rtf?(不维护)
我有一个C# 如何通过忽略.rtf文件格式的StreamReader读取.rtf?(不维护),c#,rtf,streamreader,C#,Rtf,Streamreader,我有一个StreamReader读取.txt、.rtf和.docx文件。 我将读取的内容存储在字符串变量中,然后将此变量打印到RichTextBox 问题是我的RichTextBox背景色是黑色,而前景色是绿色, 因此,如果.rtf文件中的文本颜色为黑色,则它在文本框中不可见, 更不用说它不会使用我在文本框中指定的字体 也许我可以用一个普通的文本框,而不是RichTextBox,但是那样我就不能给文本框中的文本上色了 我如何解决这个问题?一种可能是在表单上有第二个不可见的RichTextBox。
StreamReader
读取.txt
、.rtf
和.docx
文件。
我将读取的内容存储在字符串
变量中,然后将此变量打印到RichTextBox
问题是我的RichTextBox
背景色是黑色,而前景色是绿色,
因此,如果.rtf
文件中的文本颜色为黑色,则它在文本框中不可见,
更不用说它不会使用我在文本框中指定的字体
也许我可以用一个普通的文本框,而不是RichTextBox,但是那样我就不能给文本框中的文本上色了
我如何解决这个问题?一种可能是在表单上有第二个不可见的RichTextBox
。从StreamReader
读取RTF,将其存储在隐藏文本框中,然后从隐藏文本框读取文本并将其写入可见文本框。比如:
string rtfText = File.ReadAllText(filename);
hiddenTextBox.Rtf = rtfText;
visibleTextBox.Text = hiddenTextBox.Text;
虽然不太优雅,但它可以为您处理剥离格式的麻烦工作。一种可能是在表单上有第二个不可见的RichTextBox
。从StreamReader
读取RTF,将其存储在隐藏文本框中,然后从隐藏文本框读取文本并将其写入可见文本框。比如:
string rtfText = File.ReadAllText(filename);
hiddenTextBox.Rtf = rtfText;
visibleTextBox.Text = hiddenTextBox.Text;
虽然不太优雅,但它可以为您处理剥离格式的麻烦工作。我认为您仍然可以在文本框中为文本添加颜色。除此之外,您可能会考虑以某种方式从传入字符串中剥离格式。您是否使用
Rtf
属性将此文本设置为RichTextBox?@Andre Calil否,正如我所说,我只是从文件中读取文本,然后读取字符串变量,然后:RichTextBoxName.text=myStringVariable;我认为你仍然可以在文本框中为文本着色。除此之外,您可能会考虑以某种方式从传入字符串中剥离格式。您是否使用Rtf
属性将此文本设置为RichTextBox?@Andre Calil否,正如我所说,我只是从文件中读取文本,然后读取字符串变量,然后:RichTextBoxName.text=myStringVariable;这就是我要建议的=)@Jim Mischel嗯,没有真正起作用,它仍然需要格式化。奇怪的是,当我读取rtf文件(包含阿拉伯语单词)的内容时,看不见的RichTextBox将文本显示为某种中文或其他东西,当我从看不见的RichTextBox中读取可见的RichTextBox文本时,我得到rtf文件中的原始文本,其格式保持不变。你知道吗,我有一个想法,我将创建一个新的.txt文件,将从.rtf文件中读取的字符串变量的值写入其中,然后重新读取..也不起作用,我猜当我使用Encoding.Unicode选项时,它采用了格式..这就是我要建议的=)@Jim Mischel-hmm,没有真正起作用,它仍然采用格式。奇怪的是,当我读取rtf文件(包含阿拉伯语单词)的内容时,看不见的RichTextBox将文本显示为某种中文或其他东西,当我从看不见的RichTextBox中读取可见的RichTextBox文本时,我得到rtf文件中的原始文本,其格式保持不变。你知道吗,我有一个想法,我将创建一个新的.txt文件,将从.rtf文件中读取的字符串变量的值写入该文件,然后重新读取。我想当我使用Encoding.Unicode选项时,它也会采用该格式。。