2012-06-01 31 views
9

Trong ứng dụng WPF của tôi, tôi đang sử dụng điều khiển Datagrid; trong định nghĩa kiểm soát, tôi đã xác định ClipboardCopyMode thuộc tính là 'IncludeHeader'.WPF Datagrid COMException khi sử dụng IncludeHeader ClipboardCopyMode

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

Đôi khi, khi tôi cố gắng sao chép bất kỳ dữ liệu từ mạng lưới, tôi gặp phải HRESULT vào clipboard lỗi crash -

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

Mọi góp ý để giải quyết nó. Tôi đã xem các bài viết khác, chủ yếu là về cách xử lý tình huống này khi bạn sử dụng một cách rõ ràng các phương pháp liên quan Clipboard nhưng không liên quan đến Datagrid.

+1

có chính xác cùng một vấn đề với ứng dụng của tôi. Đã thêm một DataGrid, hiển thị dữ liệu. Ứng dụng này hoạt động tốt, cho đến khi tôi chuyển sang VS2012 và .net4.5. Sau đó, khi tôi sao chép nội dung vào clipboard, ứng dụng gặp sự cố –

+0

Câu trả lời cho [bài đăng của Arsen] (http://stackoverflow.com/questions/12769264/openclipboard-failed-when-copy-pasting-data-from-wpf -datagrid) về điều này đã giúp tôi. – Tod

Trả lời

5

Các mặt hàng này từ Andrew Smith tại http://blogs.infragistics.com/forums/t/35379.aspx -

Về mặt kỹ thuật chỉ có 1 tiến trình có thể mở clipboard vì vậy nếu một quá trình đã nó mở yêu cầu tiếp theo sẽ thất bại cho đến khi phát hành đầu tiên vào clipboard. Đây là loại xử lý trong WinForms lớp Clipboard nơi nó sẽ thử lại các thiết lập với một sự chậm trễ ở giữa mỗi mỗi thử nhưng WPF clipboard lớp không làm điều này vì vậy nếu nó không thành công trên chương trình đầu tiên ngoại lệ xảy ra. Thậm chí sau đó chúng tôi có lẽ nên bắt ngoại lệ và tăng lỗi hoạt động clipboard nếu nó vẫn không thành công.

Cùng một điều được giải thích và một số cách để giải quyết nó được đề cập trên blog tiếng này -

WPF DataGrid Clipboard BUG (?) & Work

Google Translation

Tiếp theo MSDN thread trên diễn đàn cho thấy rằng điều này có thể vấn đề máy cụ thể, bạn có thể sao chép điều này trên các máy khác không? -

CLIPBRD_E_CANT_OPEN exception when copying to clipboard from a DataGrid

Cập nhật:

Blog liên kết có vẻ là xuống nhưng một phiên bản cache có thể được truy cập thông qua liên kết này -

WPF DataGrid Clipboard BUG (?) & Work (Cached translation)

Các vấn đề liên quan