Clipboard.SetText("")
抛出一个错误 - “值不能为空”。那么如何使用Clipboard.SetText
复制空字符串?
我已经完成了Clipboard.Clear()
。它确实清除了剪贴板,但它无法帮助我粘贴空字符串
有什么建议吗?
答案 0 :(得分:9)
如果您尝试使用Clipboard.SetText
保存null或空字符串,它将无法正常工作。
请参阅 Clipboard.SetText Method (String) (MSDN)。它提到如果文本为null或Empty
为Clipboard.SetText
,则抛出ArgumentNullException。
因此,你无法实现你想要实现的目标。
答案 1 :(得分:8)
答案 2 :(得分:3)
答案 3 :(得分:1)
参考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("")
实际上会将空字符串值放入剪贴板。粘贴时,目标应用程序可以分辨出差异,并且如果需要,实际上会有不同的行为。