C# 剪贴板在.NET 3.5和4.5.2中的行为不同
我们已经使用VS2013将应用程序从.NET 2.0升级到4.5.2 我们面临着剪贴板的一个问题,WIN8中的2.0也可以正常工作。现在使用4.5.2剪贴板只能在WIN7中正常工作,而不能在WIN8.1中正常工作 我们的代码如下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
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)。