Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将HTML和文本复制到剪贴板?_C#_.net_Windows_Clipboard - Fatal编程技术网

C# 如何将HTML和文本复制到剪贴板?

C# 如何将HTML和文本复制到剪贴板?,c#,.net,windows,clipboard,C#,.net,Windows,Clipboard,我试图同时将HTML和纯文本放在剪贴板中,以便支持HTML的编辑器可以粘贴HTML,而其他编辑器可以使用纯文本 Clipboard.SetData(DataFormats.Html, htmlWithHeader); Clipboard.SetData(DataFormats.UnicodeText, plainText); 但实际上只有最后一种格式被放入剪贴板。在上面的示例中,剪贴板将只包含纯文本(如clipboard.GetDataObject().GetFormats()所示)。如果我交

我试图同时将HTML和纯文本放在剪贴板中,以便支持HTML的编辑器可以粘贴HTML,而其他编辑器可以使用纯文本

Clipboard.SetData(DataFormats.Html, htmlWithHeader);
Clipboard.SetData(DataFormats.UnicodeText, plainText);
但实际上只有最后一种格式被放入剪贴板。在上面的示例中,剪贴板将只包含纯文本(如
clipboard.GetDataObject().GetFormats()
所示)。如果我交换行,剪贴板将只有HTML格式


如何将这两种格式同时放入剪贴板?

您不能使用
clipboard.SetData
来设置HTML和纯文本。第二次调用SetData将清除第一次调用设置的剪贴板内容,并存储新数据

你应该使用和

例如:

DataObject dataObj = new DataObject();
dataObj.SetData(DataFormats.Html, htmlWithHeader);
dataObj.SetData(DataFormats.Text, plainText);

Clipboard.SetDataObject(dataObj);

检索
剪贴板
中的内容,然后在此基础上创建
数据对象
,然后添加who项目不是更好吗?这样你就不会删除现有的
剪贴板
日期?@Bob,不会!这将创造一个混合弗兰肯剪辑,它可以有来自不同应用程序的数据。假设剪贴板上有RTF,然后从一个应用程序添加明文,从另一个应用程序添加html,然后从另一个应用程序添加位图。当你粘贴到记事本上时,你会得到明文。当您粘贴到MS Paint中时,将得到位图。当你粘贴到WinWord时,谁知道呢?这不是剪贴板的工作方式。