如何将图像和文本作为一个对象复制到剪贴板?

Jas*_*own 5 .net c# clipboard copy-paste

我正在尝试将文件中的图像和文件中的文本复制到剪贴板.我的意图是打开word文档或outlook电子邮件,并将文本和图像粘贴到一个标准粘贴命令(例如CTRL-V)中.我可以很容易地分开做两件事,但是在一次操作中完成它们似乎都不起作用.

这就是我将两者作为单独的操作(当然只有相关的代码行,try/catch被剥离等)的方式:

将图像添加到剪贴板:

...

Bitmap imageToAdd = new Bitmap(imageFilePath);
Clipboard.SetImage(imageToAdd);
Run Code Online (Sandbox Code Playgroud)

...

将文本添加到剪贴板:

...

StreamReader rdr = new StreamReader(textFilePath);
string text = rdr.ReadToEnd();

Clipboard.SetText(text);
Run Code Online (Sandbox Code Playgroud)

...

我正在使用c#和.net 2.0框架并针对Windows XP(可能在不久的将来推出Vista).

TIA

Chr*_*ton 5

您可以使用 RTF,它可以结合文本和图形。请注意,您可以同时在剪贴板上拥有 CF_BITMAP 和 CF_TEXT。但它没有用。当你粘贴到记事本时你会得到文本,当你粘贴到画图时你会得到位图,而大多数其他应用程序会选择一个或另一个,但永远不会两者兼而有之。所以这只是学术性的。有点整洁,就像星际迷航中的运输机故障一样整洁。但也很乱。


Gur*_*epS 1

我注意到只能传入一个对象。

在这种情况下,当用户按下粘贴命令时,您的代码可以执行两个函数,或者递归执行一个函数,并且每次都获取您想要的数据并将其粘贴进去。

所以,看看循环或递归。