Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Siuto en 18 Agosto 2010, 00:52 am



Título: [C#] Multi line Clipboard
Publicado por: Siuto en 18 Agosto 2010, 00:52 am
¿Como hago para copiar una cadena multilinea al portapapeles?


Código
  1. Clipboard.SetText("abc\n123");

Asi es como lo estoy haciendo, pero cuando hago Ctrl + V en el notepad me sale:

Código:
abc123

en vez de:

Código:
abc
123


Título: Re: [C#] Multi line Clipboard
Publicado por: [D4N93R] en 18 Agosto 2010, 01:40 am
Hola!

Bueno hay que espeficiarle al Clipboard que es lo que contiene:

http://msdn.microsoft.com/en-us/library/system.windows.forms.dataformats_fields.aspx

http://msdn.microsoft.com/en-us/library/system.windows.dataformats.aspx

Simplemente pasarle el formato en la sobrecarga.

Posiblemente con Unicode funcione, sino prueba Rtf que si funciona.

Saludos!


Título: Re: [C#] Multi line Clipboard
Publicado por: Siuto en 18 Agosto 2010, 01:52 am
Se me olvido de ponerlo en el post anterior pero probe con los formatos:

Código
  1. TextDataFormat.Html
  2. TextDataFormat.Rtf
  3. TextDataFormat.Text
  4. TextDataFormat.UnicodeText

Y no es la solucion...


Título: Re: [C#] Multi line Clipboard
Publicado por: [D4N93R] en 18 Agosto 2010, 03:08 am
Me acordé, en Windows una línea nueva es \r\n xD Prueba eso, que estoy 99% seguro de que si funciona.. xD Y con DataFormats.Text ..  :P


Título: Re: [C#] Multi line Clipboard
Publicado por: raul338 en 18 Agosto 2010, 14:30 pm
Usa System.Enviroment.NewLine; (Nota: Enviroment puede variar :xD)


Título: Re: [C#] Multi line Clipboard
Publicado por: [D4N93R] en 18 Agosto 2010, 14:59 pm
Usa System.Enviroment.NewLine; (Nota: Enviroment puede variar :xD)

Si usas eso te dara \r\n en windows y \n en linux. xD


Título: Re: [C#] Multi line Clipboard
Publicado por: Siuto en 18 Agosto 2010, 19:52 pm
Con cualquiera de las dos soluciones resolvi el problema :D

Pero me surge otra dura, porque en realidad el texto que queria pasar al Clipboard no era una cadena harcodeada asi como puse en el ejemplo, si no que son unas lineas sacadas de un Rich TextBox que cuando las leo no me respeta las nuevas lineas a pesar de que cuando me muestra el texto si...


Código
  1. Clipboard.SetText(richTextBox.Text)

Asi es como hago y el problema ya lo solucione copiando el texto antes de meterlo en el richTextBox, pero solo por curiosidad ¿existe alguna forma de sacarlo de ahi con el formato correcto?


Título: Re: [C#] Multi line Clipboard
Publicado por: [D4N93R] en 19 Agosto 2010, 01:33 am
Si, usando TextDataFormat.Rtf :)