2012-05-18 26 views
9

Todo, escribo un archivo de registro en un archivo .rtf que tiene un formato de subrayado, negrita, etc. He guardado este archivo y quiero volver a leerlo en el RichTextBox en un momento posterior persistiendo en su formateo. He intentado lo siguienteCargue un archivo .rtf en un RichTextBox y mantenga/mantenga el formato

tmpRichTextBox.LoadFile(@"F:\Path\File.rtf", RichTextBoxStreamType.RichText); 

Carga el archivo pero no hay ninguno de mis formatos originales. Si cargo el archivo .rtf en word, aparece el formato. ¿Cómo leo .rtf de nuevo en RichTextBoxincluyendo su formato?

Gracias por su tiempo.

+0

El código que ha proporcionado debe funcionar. ¿Has probado un archivo RTF diferente? Solo puedo imaginar que podría haber un error en el RTF? –

+0

Sí, no formatea en absoluto ... – MoonKnight

Respuesta

1

Marcó NRTFTree.

¡Es una biblioteca increíble para la gestión de RTF!

1

Editado:
Es posible que usted está perdiendo el formateo más adelante en el código. Hay ciertas operaciones que pueden causar la pérdida del formateo. Por ejemplo, richTextBox.Font = newFont;

Tuve este problema, pero afortunadamente encontré una forma de evitarlo. Aquí está el código que le permitirá cambiar el tipo de letra sin perder el formateo:

richTextBox.SelectAll(); 
richTextBox.SelectionFont = newFont; 
string rtf = richTextBox.SelectedRtf; 
richTextBox.Font = newFont; 
richTextBox.Rtf = rtf; 
+0

Hola @Dzienny, no 'funciona', de ahí la pregunta. Si guarda un archivo RTF y lo vuelve a leer en un 'RichTextBox', el formateo desaparecerá. Gracias por tu tiempo. – MoonKnight

+0

Hola @Killercam El código que carga un archivo rtf a un 'RichTextBox' funciona. Es más probable que pierda el formateo más adelante en el código. He editado la respuesta para resolver este problema. – Dzienny

1

Si usted puede guardar su archivo de registro en formato HTML, puede leer este archivo con el control WebBrowser. De esta manera:

private void button1_Click(object sender, EventArgs e) 
    { 
    string fileName = Path.Combine(Environment.CurrentDirectory, "log1.htm"); 

     webBrowser1.DocumentText = File.ReadAllText(fileName); 
    } 

Esto funciona perfectrly.

Cuestiones relacionadas