WPF 拖动时出现 Invalid FORMATETC structure

原文:WPF 拖动时出现 Invalid FORMATETC structure

如果在 WPF 需要支持一个东西可以拖动,那么可以使用 DragDrop ,但是使用这个之后就出现了异常

System.Runtime.InteropServices.COMException was unhandled
Message: An exception of type ‘System.Runtime.InteropServices.COMException‘ occurred in PresentationCore.dll and wasn‘t handled before a managed/native boundary
Additional information: Invalid FORMATETC-Structure (Exception HRESULT: 0x80040064 (DV_E_FORMATETC))

如果需要拖动一个文字,那么可以使用下面代码

            DataObject dataObject = new DataObject(DataFormats.Text, "hello");
                DragDrop.DoDragDrop(this, dataObject, DragDropEffects.Move);

这个在程序内拖动不会出现问题,但是如果在拖动在程序外,就会出现

‘System.Runtime.InteropServices.COMException‘ occurred in PresentationCore.dll
System.Runtime.InteropServices.COMException was unhandled
Message: An exception of type ‘System.Runtime.InteropServices.COMException‘ occurred in PresentationCore.dll and wasn‘t handled before a managed/native boundary
Additional information: Invalid FORMATETC-Structure (Exception HRESULT: 0x80040064 (DV_E_FORMATETC))

这是正常的,因为这是 windows 的坑。如果拖动的程序无法把你的内容转换为他需要的,那么就会出现这个错误。

只需要忽略就好了

参见 https://stackoverflow.com/a/34092811/6116637



本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E6%8B%96%E5%8A%A8%E6%97%B6%E5%87%BA%E7%8E%B0-Invalid-FORMATETC-structure.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。

以下是广告时间

推荐关注 Edi.Wang 的公众号

原文地址:https://www.cnblogs.com/lonelyxmas/p/12082308.html

时间: 2024-11-12 13:20:15

WPF 拖动时出现 Invalid FORMATETC structure的相关文章

WPF拖动DataGrid滚动条时内容混乱的解决方法

WPF拖动DataGrid滚动条时内容混乱的解决方法 在WPF中,如果DataGrid里使用了模板列,当拖动滚动条时,往往会出现列表内容显示混乱的情况.解决方法就是在Binding的时候给UpdateSourceTrigger赋值. <Grid> <Grid.RowDefinitions> <RowDefinition Height="25"></RowDefinition> <RowDefinition></RowDe

[转]maven编译时出现读取XXX时出错invalid LOC header (bad signature)

maven编译时出现读取XXX时出错invalid LOC header (bad signature) 一.发现问题右击pom.xml,run as —> maven install,会看到console中有时报mavenRepository\repos\org\mortbay\jetty\servlet-api-2.5\6.1H.14.1\servlet-api-2.5-6.1H.14.1.jar时出错等某些包的报错等类似信息,pom.xml显示红叉. 二.原因分析该包没有下载正确. 三.解

C#实现窗体拖动时各个控件同比自动放缩大小

实现方式主要是利用panel控件为主题,对于每个控件的大小位置和字体这几个属性进行记录, 然后根据窗体改变的大小同时放缩. 简要步骤如下: 1 创建C#窗体程序项目. 2  Panel放置到窗体. 3  设置属性dock为fill. 4  注意MinnumSize不能设置为0, 改成大于0都行. public partial class FrmDemo : Form { double dFrmWidth; double dFrmHeight; double dZoomHorizon; doubl

eclipse导入安卓工程时出现 Invalid project description. overlaps the location of another project提示

eclipse导入工程时出现了如下问题: Invalid project description. /Users/yang/Documents/workspace/BarCodeTest overlaps the location of another project: 'BarCodeTest' 原因:下载工程时把该工程放在了workspace目录下.eclipse插件在创建项目的时候需要在workspace目录下创建一个同名的目录. 但发现workspace目录下已存在对应的目录时,就会报上

关闭SQL Server管理器(SSMS)拖动时大括号及dbo(架构)的办法

SSMS确实很方面,但是,个人不喜欢每次从资源管理器拖动对象到查询分析器的时候,都自动带了大括号,强迫症患者表示非特殊情况下,哥哥真的不需要啊,终于,在SSMS 17.6 的时候,官方终于增加了两个选项: 1.去掉对象资源管理器拖动时自动填充架构名称进查询分析器,也就是[dbo] 2.去掉对象资源管理器拖动时自动填充大括号 官方说明: 关闭步骤: ①.关闭 架构[dbo],解释:true:不关闭 ②.关闭大括号,解释:true:不关闭 原文地址:https://www.cnblogs.com/r

运行scrapy crawl (文件名)时显示invalid syntax和no modle &#39;win32api&#39;解决方案

使用pycharm爬取知乎网站的时候,在terminal端输入scarpy crawl zhihu,提示语法错误,如下: 原因是python3.7中将async设为关键字,根据错误提示,找到manhole.py文件,将文件中async参数全部更改为其它名,比如async1. 这时候运行scarpy crawl zhihu,显示如下错误: 解决方案: 原因是缺少win32,到 http://sourceforge.net/projects/pywin32/files/ 找到对应的版本进行下载,直接

[Office] Excel拖动时很缓慢

1. 右键我的电脑->属性->高级系统设置->性能-> 取消选择"拖动时显示" 原文地址:https://www.cnblogs.com/zienzir/p/12440507.html

sqlplus登录Oracle时ORA-01017: invalid username/password; logon denied的错误

今天用scott用户登录Oracle数 据库时,竟然出现了ORA-01017: invalid username/password; logon denied错误,原以为是因为我的scott用户没有解锁,后用system用户登录,然后用alter user scott account unlock语句对scott用户进行解锁,可是解锁后依然不能进入,还是报告ORA-01017: invalid username/password; logon denied错误,仔细想了一会,感觉应该是我在对sc

文件上传时异常Invalid field value for field &quot;**&quot;与enctype=&quot;multipart/form-data&quot;

在做文件上传时,有一个form标签的属性必须要加上. 文件上传的form若如下面所写,则会报异常:Invalid field value for field "**",原因是:表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传:只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操