c# - net - ¿Cómo envío secuencias de texto variadas de un RichTextBox a otro?
richtextbox vb net (2)
De la documentación en msdn:
"La propiedad Text no devuelve ninguna información sobre el formato aplicado a los contenidos de RichTextBox. Para obtener los códigos de formato de texto enriquecido (RTF), use la propiedad Rtf".
Entonces, para asignar el valor, con el formateo, use esto:
myRichTextBox.Rtf = otherRichTextBox.Rtf;
He reemplazado +=
con =
porque no estoy seguro de querer agregar el valor, en lugar de simplemente reemplazarlo. Si usa +=
, puede tener problemas debido a que los códigos "rtf" se anexan uno después del otro. Sin embargo, pruébelo ... es posible que no se encuentre con ningún problema.
Tengo un código que tiene compuestos químicos que tienen letra pequeña para el subíndice. Actualmente tengo este código que lo transfiere de un RichTextBox
a otro en un clic de botón.
myRichTextBox.Text += otherRichTextBox.Text
En otherRichTextBox
tengo el compuesto con diferentes tamaños de letra; sin embargo, cuando hago esto, termino con una cadena en myRichTextBox
que no mantiene los diferentes tamaños de letra y los establece todos en la fuente y el tamaño de las propiedades principales de los cuadros.
Para copiar texto, incluido el formato, debe usar la forma RTB habitual:
- ¡Haz una selección y luego actúa en consecuencia!
Este es el camino a seguir, no importa lo que hagas:
- Estiliza tu texto con
SelectionFont
,SelectionColor
,SelectionAlignment
, etc. - Insertar o eliminar texto con
Cut
,Copy
oPaste
-
Find
texto oAppendText
A continuación, le mostramos cómo hacer lo que preguntó:
otherRichTextBox.SelectionStart = 0;
otherRichTextBox.SelectionLength = otherRichTextBox.Text.Length;
myRichTextBox.AppendText(otherRichTextBox.SelectedText);
Para insertar la porción del texto en la posición n
, escriba
otherRichTextBox.SelectionStart = 0;
otherRichTextBox.SelectionLength = otherRichTextBox.Text.Length;
myRichTextBox.SelectionStart = n;
myRichTextBox.SelectionLength = 0;
myRichTextBox.SelectedText = otherRichTextBox.SelectedText;
¡Debe cumplir la regla cada vez que quiera cambiar el texto formateado de cualquier forma !
Un poco complicado, pero se garantiza que funcionará correctamente a medida que vaya pasando el libro.
Para simplemente ''clonar'' el texto completo, vaya por el código de Grant:
myRichTextBox.Rtf = otherRichTextBox.Rtf;
Es posible trabajar con los códigos Rtf
bruto, si sabes lo que estás haciendo, pero incluso si algunas cosas todavía se ven bien por un tiempo porque se ignoran algunos errores y la mayoría de las redundancias, tiende a acumular basura. debes seguir la regla de oro:
- ¡Haz una selección y luego actúa en consecuencia!
Actualización: ¡ Esta es una buena manera de resolver su problema correctamente con solo dos líneas! (Pero aún debes vivir según la regla ...)