关于c#:使用Clipboard.SetText(string)复制空字符串

Copy empty string using Clipboard.SetText(string)

Clipboard.SetText("")引发错误-"值不能为空"。 那么如何使用Clipboard.SetText复制空字符串?

我已经完成了Clipboard.Clear()。 它确实清除了剪贴板,但是并没有帮助我粘贴一个空字符串

有什么建议么?


如果尝试使用Clipboard.SetText保存null或空字符串,则它将永远无法工作。

请参见Clipboard.SetText方法(字符串)(MSDN)。它提到如果文本为null或Clipboard.SetText的Empty则引发ArgumentNullException。

因此,您无法实现想要达到的目标。


我认为你需要做

Clipboard.Clear()

从MSDN

Clears any data from the system Clipboard.

将清除剪贴板,因此您将"粘贴"一个空字符串。


引用PresentationCore并调用System.Windows.Clipboard.SetText(string)而不是System.Windows.Forms.Clipboard.SetText(string)。我使用clipview来验证System.Windows.Clipboard.SetText("");(不会引发异常)将空字符串存储到剪贴板中。

此方法使您不必依赖于要有效设置到剪贴板中的字符串而有条件地调用Clear()或SetText()的方法。如果您试图编写代码将剪贴板设置为任何字符串值而又不提前知道是否需要支持空字符串,则此功能特别有用。也就是说,通过这种方法,您可以避免将空字符串视为特殊情况(IMO,这不应该是特殊情况,因为这很令人困惑)。

此外,从clipview可以看出,Clear()实际上清空了剪贴板,而不是在其中放置空字符串。实际上,调用System.Windows.Clipboard.SetText("")会将一个空字符串值放入剪贴板。粘贴时,目标应用程序可以分辨出差异,并且在需要时实际上表现不同。

本文来自博客园,作者:云辰,转载请注明原文链接:https://www.cnblogs.com/yunchen/p/13818795.html

原文地址:https://www.cnblogs.com/yunchen/p/13818795.html