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

急!如何让Clipboard中的Text和Html类型数据不相互覆盖~跪求仙人指路
似乎Clipboard中Text和Html这两种格式是互斥的,我给一种格式设置Data的时候,会把另一种格式的Data给冲掉。请看下面的Code:

  StringBuilder sb1 = new StringBuilder();
  sb1.Append(@"Version:0.9
  StartHTML:71
  EndHTML:170
  StartFragment:140
  EndFragment:160
  StartSelection:140
  EndSelection:160");
  sb1.Append("<html><body>");
  sb1.AppendFormat("<span>{0}</span>", "ABC");
  sb1.AppendFormat("<img src='{0}' />", @"C:\1.png");
  sb1.Append("</body></html>");
  Clipboard.SetData(DataFormats.Text, "ABC");
  Clipboard.SetData(DataFormats.Html, sb1.ToString());
当最后一句执行完,我赋给DataFormats.Text格式的“ABC”就被冲掉了,因为Clipboard.GetText()返回的是null了。
请高人指点,要怎么样设置,才能使两种格式的数据不互相影响?

(ps: 我这么做的目的是,想把不同的数据分别以Text和Html的形式保存在Clipboard中,以使不支持html的Notepad也能从以DataFormats.Text格式从clipboard里面拿到文字信息。)


------解决方案--------------------
C# code

...
DataObject multi = new DataObject();
multi.SetData(DataFormats.Text, "ABC");
multi.SetData(DataFormats.Html, sb1.ToString());
Clipboard.SetDataObject(multi, true);