我正在使用Clipboard events将数据从剪贴板复制到包含Microsoft Word的应用程序。
只要用户在Windows中的任何位置点击副本,它就会将数据粘贴到该单词上。但是如果用户按两次 Ctrl + C ,我不想粘贴相同的数据。
现在this answer建议,我无法使用IsCurrent
来比较DataObjects
所以我这样做:
if (Clipboard.GetData(DataFormats.UnicodeText).ToString()!=oldData)
{
//Paste and stuffs
oldData= Clipboard.GetData(DataFormats.UnicodeText).ToString();
}
但它只有在数据包含一些文本时才有效,如果没有,我会得到空引用错误。
那么有什么方法可以知道DataObject
是否包含除文本之外的其他内容(比如Bitmap
)并且能够比较它们吗?
答案 0 :(得分:0)
您可以使用方法ContainsData来检查对象的类型是否存在
if (Clipboard.ContainsData(System.Windows.Forms.DataFormats.Text))
{
//do something
}
您可以探索适合您需求的格式的DataFormats类