剪贴板在.NET 3.5和4.5.2中的行为有所不同

时间:2016-02-26 13:46:18

标签: c# visual-studio-2013

我们已将应用程序从.NET 2.0升级到4.5.2并使用VS2013。

我们在剪贴板面临一个问题,在WIN8中一切都运行良好。现在使用4.5.2剪贴板只能在WIN7中正常工作,而不是在WIN8.1中

我们的代码如下。

DataObject dataObject = new DataObject();
IDataObject iObj = Clipboard.GetDataObject() as DataObject;
string[] formats = iObj.GetFormats();
for (int i = 0; i < formats.Length; i++)
{
     object obj = iObj.GetData(formats[i]);
     if (obj != null)
     {
           dataObject.SetData(formats[i], obj);
     }

}
//add rtf

dataObject.SetData(DataFormats.Rtf, rtfText.rtf_text);

if (rtfText.rtf_text.IndexOf("Symbol") < 0)
 {
      //add simple text
   using (RichTextBox rtb = new RichTextBox())
   {
     rtb.Rtf = rtfText.rtf_text; 
     dataObject.SetData(DataFormats.Text, rtb.Text);
 }
 }
Clipboard.SetDataObject(dataObject, true); //CRASHING HERE

我认为问题在于添加RTF对象。没有这个RTF数据,它的工作正常。

获取错误:来自hresult的无效tymed异常:0x80040069 看到堆栈溢出,但不知道如何继续我的情况 - Clipboard behaves differently in .NET 3.5 and 4, but why?

提前致谢,请帮忙。

此致

Biju Koshy

0 个答案:

没有答案