zoukankan      html  css  js  c++  java
  • WPF 中 OpenClipboard 失败问题

    解决方案可以参照:https://stackoverflow.com/questions/12769264/openclipboard-failed-when-copy-pasting-data-from-wpf-datagrid

    关键的问题在于 Clipboard.SetText() 方法会触发异常。

    方案一:

    It is a bug in the WPF Clipboard handler. You need to handle the unhandled exception in the Application.DispatcherUnhandledException event.

    Add this attribute to the Application element in your App.xaml

    DispatcherUnhandledException="Application_DispatcherUnhandledException"

    Add this code to your App.xaml.cs file

    void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
    {
        var comException = e.Exception as System.Runtime.InteropServices.COMException;
    
        if (comException != null && comException.ErrorCode == -2147221040)
             e.Handled = true;
    }

    方案二:

    We are using .NET 4.0. We had the same problem, but after logging off the system, code used to work fine for some time.

    Finally we found the alternative.

    If you want to copy a string to the clipboard,

    string data = "Copy This"

    Till now I was using the following method

    Clipboard.SetText(data);

    It was failing again and again. Then I looked at other methods available to set text in the clipboard in Clipboard Class and tried the following:

    Clipboard.SetDataObject(data);

    And it worked :). I never had the issue again.

    更多的方案参照最上方的链接。

    如果是 DataGrid 的复制问题,一般 DataGridTextColumn 是可以直接进行复制的,如果是 DataGridTemplateColumn,则需要添加

    ClipboardContentBinding="{Binding 属性}"

    到 DataGridTemplateColumn 中就能解决此问题。

  • 相关阅读:
    【Web__Cookie】常规使用
    【MVC__ExceptionFilter】全局异常处理
    【 自定义友好错误页 】
    【前端__iframe】web页面框架的使用相关
    【JS__UEditor】富文本编辑器的使用
    简单五子棋,没有电脑AI
    C# 打印倒三角
    C# 抽象类
    递归算法输出数列的前N个数
    case when then else end 累加
  • 原文地址:https://www.cnblogs.com/xiefang2008/p/7703716.html
Copyright © 2011-2022 走看看