Получение ошибки буфера обмена из нескольких приложений при работе Chrome - Datagridview на WinForm - PullRequest
0 голосов
/ 10 ноября 2011


Я получаю сообщение об ошибке, когда пытаюсь использовать ctrl + C и ctrl + V в элементе управления datagridview. Это не воспроизводится на моей другой машине.

Далее, проанализировав ситуацию, я выяснил, что эта проблема возникает, только если запущен Google Chrome. Если я закрою Google Chrome, он будет работать как положено.

Это исключение, выбрасываемое приложением, Запрошенная операция буфера обмена не удалась.

--STACK TRACE--

   at System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr)
   at System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay)
   at System.Windows.Forms.DataGridView.ProcessInsertKey(Keys keyData)
   at System.Windows.Forms.DataGridView.ProcessDataGridViewKey(KeyEventArgs e)
   at System.Windows.Forms.DataGridView.OnKeyDown(KeyEventArgs e)
   at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
   at System.Windows.Forms.DataGridView.ProcessKeyEventArgs(Message& m)
   at System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
   at System.Windows.Forms.Control.WmKeyChar(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.DataGridView.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

System.Windows.Forms

Эта проблема возникает и в Internet Explorer.

Есть ли что-то, что я должен сделать на datagridview. Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо,
Виджей

1 Ответ

1 голос
/ 25 января 2012

Это похоже на этот вопрос ..
Запрошенная операция буфера обмена не удалась

Также связано ..

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/31da5cec-7d47-41f0-a2e5-ee16e609a871

Сверху ссылка ..

Проблема с буфером обмена состоит в том, что он используется всеми процессы и только один процесс может получить к нему доступ одновременно. Так что если другой Процесс использует буфер обмена одновременно с вашим приложением Вы можете получить это исключение. Ваш другой компьютер может иметь процесс который использует буфер обмена, даже когда окно процесса не активно (например, пользователь выполняет действие в вашем приложении). Это Также известно, что это проблема с виртуальными машинами.

Мой совет: перехватить исключение и повторить попытку несколько раз. или позже, буфер обмена будет освобожден, чтобы вы могли его использовать. Вы могли бы наследовать от класса Clipboard и предоставлять дополнительные методы, которые вы используете в своем приложении.

И еще один ..
http://channel9.msdn.com/Forums/TechOff/Requested-Clipboard-operation-did-not-succeed

...