如何将图像和文本作为一个对象复制到剪贴板?
-
08-07-2019 - |
题
我正在尝试将文件中的图像和文件中的文件复制到剪贴板。我的意图是打开word文档或outlook电子邮件,并将文本和图像粘贴到一个标准粘贴命令(例如CTRL-V)中。我可以很容易地分开做两件事,但是在一次操作中完成它们似乎都不起作用。
这就是我将两者作为单独的操作(当然只有相关的代码行,try / catch被剥离等)的方式。:
将图像添加到剪贴板:
...
Bitmap imageToAdd = new Bitmap(imageFilePath);
Clipboard.SetImage(imageToAdd);
...
将文字添加到剪贴板:
...
StreamReader rdr = new StreamReader(textFilePath);
string text = rdr.ReadToEnd();
Clipboard.SetText(text);
...
我正在使用c#和.net 2.0框架并针对Windows XP(可能在不久的将来推出Vista)。
TIA
解决方案
我注意到只能传入一个对象。
在这种情况下,当用户按下要粘贴的命令时,您的代码可以递归执行两个函数或一个函数,并且每次都获取所需的数据并将其粘贴。
所以,看看循环或递归。
其他提示
您可以使用RTF,它可以组合文本和图形。请注意,您可以同时在剪贴板上安装CF_BITMAP和CF_TEXT。但它没用。当您粘贴到记事本中时,您会得到文本,当您粘贴到Paint时,您会得到位图,而大多数其他应用程序会选择其中一个,但绝不会同时选择两个。所以它只是学术性的。有点整洁,就像星际迷航中的运输车故障一样整洁。但也很乱。
也许您可以使用需要Object参数的SetDataObject,您可以使用对象数组吗?
对象数组可以保存您需要的数据。
请看这个链接:
不隶属于 StackOverflow