2012-01-27 31 views
8

¿Cómo puedo agregar saltos de línea usando el método SetText?Salto de línea usando el Portapapeles SetText

Intenté Clipboard.SetText("eee \n xxxx"); pero no me da el resultado esperado cuando pego los datos del portapapeles en el bloc de notas. resultado

esperado:

eee 
xxxx 

¿Cómo puedo lograr esto?

+1

¿qué le ofrece? – gdoron

+0

algo: eee (carácter cuadrado) xxxx – yonan2236

Respuesta

9

Windows utiliza pares LF CR + para indicar una nueva línea. Esto equivale a "\r\n" en C#. Sin embargo, solo está enviando "\n", es decir, un solo LF en lugar de un par CR + LF.

Use Environment.NewLine en lugar de "\n". Esta es la forma idónea de deletrear "\r\n" en C#. Como beneficio adicional, si alguna vez ejecutó su código en una plataforma * nix, Environment.NewLine se evaluaría como "\ n", que es el indicador de la nueva línea * nix. Finalmente, en mi opinión, Environment.NewLine es preferible desde una perspectiva de legibilidad. Documenta lo que esta cosa es lógicamente en lugar de confiar en que usted conozca las constantes mágicas.

+0

nuevo conocimiento para mí. gracias de esta información – yonan2236

+0

Hola David, ¿dónde puedo encontrar una referencia para este tipo de atajos o similar? – yonan2236

+0

No estoy seguro de que haya una sola lista de conocimiento útil como este. Solo elige estas cosas a medida que avanzas. Los lenguajes de nivel superior hacen un buen trabajo al protegerlo de todos estos detalles, pero de vez en cuando se topa con él. –

4

Probar:

Clipboard.SetText("eee" + Environment.NewLine + "xxxx"); 
+0

ya, esto es ... gracias:) – yonan2236

1

He encontrado esto funciona bien también:

System.Windows.Forms.Clipboard.SetText(this.txtCopyJS.Text.Replace("\n", "\r\n")); 
+0

Esto es particularmente útil cuando se trata de cadenas de C++. –