日期:2014-05-18  浏览次数:21062 次

剪贴板问题--求仙人指路
我需要把一段文字和一张图片同时拷贝到clipboard中,之后用户可以把通过Ctrl+V把文字和图片黏贴到word或者excel。注意,把文字和图片拷贝到clipboard中我们可以控制,但用户paste时,我们是无法控制的。
  IDataObject dataobj = new DataObject();
  dataobj.SetData(DataFormats.UnicodeText, info);
  dataobj.SetData(DataFormats.Bitmap, img);
  Clipboard.SetDataObject(dataobj, true);
我试过上面的方法,但黏贴的时候,只有文字被黏贴。冰天雪地跪求高人指点~


ps:当我们在word中复制时,里面的文字和图片也会被放到clipboard中,之后内容可以轻易的黏贴到wordpad,excel里。请问有没有高人知道,在word里同时复制文字和图片时,是以什么格式存到clipboard上去的?

------解决方案--------------------
可以设置为HTML格式的文档
C# code

            StringBuilder sb = new StringBuilder();
            sb.Append(@"Version:0.9
                StartHTML:71
                EndHTML:170
                StartFragment:140
                EndFragment:160
                StartSelection:140
                EndSelection:160");
            sb.Append("<html><body>");
            sb.AppendFormat("<span>{0}</span>", "Hello World!");
            sb.AppendFormat("<img src='{0}' />", @"C:\1.png");
            sb.Append("</body></html>");
            Clipboard.SetData(DataFormats.Html, sb.ToString());