2010-04-08 14 views
6

Tengo una cadena de caracteres/tokens de texto enriquecido que me gustaría pasar a richtextbox en el código.cómo alimentar una cadena rtf a un control de richtextbox

string rt = @" {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0  Arial;}{\f1\fnil\fprq2\fcharset0 Biondi;}}"+ 
@"{\colortbl ;\red255\green0\blue0;}"+ 
@"{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20\par"+ 
@"\cf1\f1 hello\cf0\f0 \ul world\par}"; 

He intentado esto:

 System.IO.MemoryStream strm = new System.IO.MemoryStream(); 
     byte[] b = Encoding.ASCII.GetBytes(rt); 
     strm.BeginRead(b, 0, b.Length, null, null); 

     richTextBox1.LoadFile(strm, RichTextBoxStreamType.RichText); 

no funcionó.

alguien me puede dar algunas sugerencias.

Por cierto, el texto enriquecido proviene de ahorro desde WordPad, abriendo el fichero con la libreta y utilizar el texto con en construir mi cadena

Respuesta

11

cuadro de texto enriquecido tiene una propiedad denominada RTF. Establezca esa propiedad a su valor de cadena. Además, tu cadena tiene un espacio extra como primer personaje. Tuve que eliminar eso antes de ver tu Hello World.

+2

+1 por notar el espacio –

2

Ampliando la respuesta de gbogumil:

string rt = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0  Arial;}{\f1\fnil\fprq2\fcharset0 Biondi;}}"+ 
@"{\colortbl ;\red255\green0\blue0;}"+ 
@"{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20\par"+ 
@"\cf1\f1 hello\cf0\f0 \ul world\par}"; 

this.richTextBox1.Rtf = rt; 
Cuestiones relacionadas