Referencia PresentationCore
y llame al System.Windows.Clipboard.SetText(string)
en lugar de System.Windows.Forms.Clipboard.SetText(string)
. Usé clipview para verificar que System.Windows.Clipboard.SetText("");
(que no arroja ninguna excepción) almacena la cadena vacía en el portapapeles.
Este método le evita tener que llamar condicionalmente al Clear()
o SetText()
, dependiendo de la cadena que intente establecer efectivamente en el portapapeles. Esto es especialmente útil si intenta escribir código para configurar el portapapeles en con cualquier valor de cadena sin saber de antemano si la cadena vacía necesita o no soporte. Es decir, este método le permite evitar tratar la cadena vacía como un caso especial (OMI, no debería ser un caso especial porque eso es simplemente confuso).
Además, como se puede ver con clipview, Clear()
en realidad vacía el portapapeles en lugar de colocar una cadena vacía en él. Llamar al System.Windows.Clipboard.SetText("")
realmente pone un valor de cadena vacío en el portapapeles. Cuando pega, la aplicación de destino puede notar la diferencia y realmente se comporta de manera diferente si así lo desea.
¿Por qué necesita pegar una cadena vacía? ¿Necesita pegar nueva línea? – JleruOHeP
Probablemente el mismo problema que yo: quería mantenerlo simple y agradable sin un caso especial cuando la selección es una cadena vacía. Tengo curiosidad por saber si hay una razón técnica para evitar una cadena vacía cuando se permite una cadena "normal". –