Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 剪贴板在.NET 3.5和4.5.2中的行为不同_C#_Visual Studio 2013 - Fatal编程技术网

C# 剪贴板在.NET 3.5和4.5.2中的行为不同

C# 剪贴板在.NET 3.5和4.5.2中的行为不同,c#,visual-studio-2013,C#,Visual Studio 2013,我们已经使用VS2013将应用程序从.NET 2.0升级到4.5.2 我们面临着剪贴板的一个问题,WIN8中的2.0也可以正常工作。现在使用4.5.2剪贴板只能在WIN7中正常工作,而不能在WIN8.1中正常工作 我们的代码如下 DataObject dataObject = new DataObject(); IDataObject iObj = Clipboard.GetDataObject() as DataObject; string[] formats = iObj.GetFormat

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

我们面临着剪贴板的一个问题,WIN8中的2.0也可以正常工作。现在使用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
DataObject DataObject=newdataobject();
IDataObject iObj=Clipboard.GetDataObject()作为数据对象;
string[]formats=iObj.GetFormats();
for(int i=0;i
我认为问题在于添加RTF对象。没有此RTF数据,其工作正常

获取错误:来自hresult:0x80040069的无效tymed异常 在堆栈溢出中看到了这一点,但不知道如何处理我的情况-

提前谢谢,请帮忙

问候


Biju Koshy

如果你的问题是从.NET 2到4,那应该是你的标题,而不是相关问题的标题。代码的第一部分没有任何意义,你正在尝试将RTF转换为剪贴板上已经存在的任何格式。这完全是随机的,如果这碰巧是,比如说,一个位图,那你就惨了。只需去掉它,以数据格式添加它。Rtf就足够了。我们需要将整个Rtf放在剪贴板中,然后粘贴到画布上(如word)。