2011-02-14 15 views
8

Quiero anexar el contenido de dos cuadros de texto enriquecido en una aplicación .Net de Windows Forms; diga: stringText = richtextbox1.Rtf + richtextbox2.Rtf; El stringText debe ser texto RTF, que debe tener una línea \ rtf una vez, con texto enriquecido concatenado.Agregar el contenido de dos RichTextbox como una única cadena de RichText

El portapapeles no está en el alcance aquí.

Además, tengo curiosidad, si podemos desvincularlos.

+0

Si vincula esto con mi pregunta anterior, para convertir RTF a WordML, sí, sigue sin resolverse. XAML como solución no es aplicable en .NET 2.0 winForms, mientras que el uso de XML SDK es la última opción, mi administrador me aconseja usar, ya que eso llevaría tiempo. Se me sugiere fusionar cadenas RTF ricas y substitutos en WordML, y hacer la conversión de este nuevo RTF y separarlo e insertarlo en WordML. Sé que eso no suena bien, pero tengo que informar exactamente eso. – iTSrAVIE

+0

¿Puedes convertir RTF a WordML todavía? –

+0

Si tuviera que enfrentar estos problemas, probablemente solo compraría Aspose Words y pasaría al siguiente proyecto. –

Respuesta

16

Prueba esto:

richTextBoxTarget.Select(richTextBoxTarget.TextLength, 0); 
richTextBoxTarget.SelectedRtf = richTextBoxSource.Rtf; 

De este modo el contenido de richTextBoxSource hasta el final de richTextBoxTarget. Crea automáticamente un RTF válido con solo una etiqueta \ rtf.
Para desintegrar, también use Select y SelectedRtf. El único requisito aquí es que necesita saber en qué posición desea dividirse.

+0

@Daniel Hilgarth, la confusión podría ser que su ejemplo muestra solo 1 fuente, por lo que parece que no está abordando el problema de combinar el RTF de 2 fuentes. –

+0

@adrift: No, no es así. Contiene dos fuentes Agrega el contenido de un RTB al final de otro RTB que a su vez puede contener texto Rtf. –

+0

hola Daniel, le agradezco su respuesta. Pero, mi requisito es diferente aquí. Esto está relacionado con mi requisito original: http://stackoverflow.com/questions/4944813/rtf-to-wordml-convert-in-c – iTSrAVIE

0

No estoy seguro de si esto es útil, pero aquí está el código anterior formateado de nuevo en un método de extensión. Esto te permite decir:

textBox.AppendRtf(someRtfString) 

que coincide convenientemente con el método de la clase AppendText()RichTextBox.

''' <summary> 
''' Appends the provided RTF-formatted string to the provided <see cref="RichTextBox"/>. 
''' </summary> 
<Extension()> _ 
Public Sub AppendRtf(ByVal rtbTextBox As RichTextBox, ByVal strRtf As String) 
    rtbTextBox.Select(rtbTextBox.TextLength, 0) 
    rtbTextBox.SelectedRtf = strRtf 
End Sub 
0

Sé que es una pregunta antigua, pero parece ser una pregunta común. Por lo tanto, voy a agregar mi respuesta a esto, porque la respuesta marcada hace que los RTF se concatenen, pero también da una nueva línea extra, cada vez.

Esto sería:

RichTextBoxSource.Select(0,RichTextBoxSource.TextLength); 
RichTextBoxTarget.SelectedRtf = richTextBoxSource.SelectedRtf; 

Es fácil y funciona bien. Espero que ayude a alguien :)

Cuestiones relacionadas