WPF的Datagrid收到COMException使用IncludeHeader Clipboar

2019-09-17 16:51发布

在我的WPF应用程序,我使用的是Datagrid控制; 在控制定义我定义ClipboardCopyMode属性为“IncludeHeader”。

<DataGrid Name="datagrid"  ClipboardCopyMode="IncludeHeader">
</DataGrid>

有时,当我尝试从电网复制任何数据,我遇到HRESULT剪贴板崩溃的错误-

System.Runtime.InteropServices.COMException (0x800401D0): 
OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))

任何建议,以解决这个问题。 我看了看其他的帖子,大多是一些有关您明确使用如何处理这种情况Clipboard涉及相关的方法,但没有Datagrid

Answer 1:

发现这个由安德鲁·史密斯在http://blogs.infragistics.com/forums/t/35379.aspx -

技术上,所以如果另一个进程已经打开它的后续请求将失败,直到第一个版本剪贴板只有1个进程可以打开剪贴板。 这是在WinForms的那种处理Clipboard类哪里会与延迟重试集之间的每个尝试,但如果它失败在首秀中发生异常WPF剪贴板类不这样做,所以。 即便如此,我们也许应该捕获异常,提高剪贴板操作错误,如果它仍然失败。

同样的事情进行了说明和一些方法来解决这个问题是在这个意大利博客中提到 -

WPF的DataGrid剪贴板BUG(?)工作

谷歌翻译

以下MSDN论坛主题表明,这可能是该机的具体问题,可以重现这个在其他机器上? -

复制从DataGrid到剪贴板时CLIPBRD_E_CANT_OPEN异常

更新:

博客链接似乎是下降,但缓存版本可以通过这个链接访问 -

WPF的DataGrid剪贴板BUG(?)工作(缓存译)



文章来源: WPF Datagrid COMException on using IncludeHeader ClipboardCopyMode