Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Clipboard.clear выкидывает исключение COMExeption


Автор: Adept 21.9.2009, 14:29
код:
Код

TextBox TBH2 = new TextBox();
TBH2.Text = "qqq"
Clipboard.Clear();
TBH2.SelectAll();
TBH2.Copy();


Clipboard.clear() выкидывает исключение COMExeption
ошибка при вызове OpenClipboard(Исключение из HRESULT: 0x800401D0(CLIPBRD_E_CANT_OPEN))"

Получается Clipboard занят другим процессом и удается до него достучаться.
Пробовал подождать, пока буфер не освободится, не помогает.
Код

private void textCopyClipboard(TextBox textBox)
{              
  for (int i = 0; i < 100;i++)
  {
     try
     {
        Clipboard.Clear();
        textBox.SelectAll();
        textBox.Copy();                      
        return;
     }
     catch (Exception ex)
     {
        System.Threading.Thread.Sleep(100);
     }
  }
}

Подскажите плиз, как можно побороть эту проблему.

Автор: wester 21.9.2009, 17:38
Adept, 
проблема известна еще со второго фрэймворка , 
можно посоветовать использовать API функции либо Clipboard.SetDataObject() 
хотя во втором случае также бывают сбои

Автор: Akbar 28.1.2011, 06:45
попробуй
for(;;)
            {
                try { if (Clipboard.GetText() != "1") break; }
                catch { }
            }

мне помогло!

Автор: teesync 27.7.2022, 04:29
Модератор: Сообщение скрыто.

Автор: roatueque 9.2.2023, 01:07
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)