В моей задаче нужно, чтобы по нажатию кнопки содержимое буфера было записано в TextBox. Буфер полон, но при попытке получить информацию я получаю System.NullReferenceException. Проверка функцией Clipboard.ContainsText() тоже говорит о том, что буфер обмена пуст (NO_BUFFER_DATA).
Мой код:
string GetBufferText()
{
System.Windows.Forms.IDataObject iData = System.Windows.Forms.Clipboard.GetDataObject();
if (iData.GetDataPresent(System.Windows.Forms.DataFormats.Text))
{
return iData.GetData(System.Windows.Forms.DataFormats.Text).ToString();
}
return "CANNOT_GET_DATA";
}
protected void btnBordFromBuff_Click(object sender, EventArgs e)
{
//Добавление текста в буфер (Проходит успешно)
Thread thread = new Thread(() => Clipboard.SetText(tbLink.Text));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
//Вытягивание текста из буфера
if (Clipboard.ContainsText())
{
tbMinId.Text = GetBufferText();
tbMaxId.Text = GetBufferText();
}
else
{
tbMinId.Text = "NO_BUFFER_DATA";
tbMaxId.Text = "NO_BUFFER_DATA";
}
}
Как исправить код так, чтобы Clipboard обнаружил текст, хранящийся в буфере обмена?
Использование Clipboard.SetText(tbLink.Text) без потока дает ошибку System.Threading.ThreadStateException
Thread? 3. Почему в WPF проекте используется WinForms?я получаю System.NullReferenceException? А то у вас может Clipboard == null. – A K Oct 10 '20 at 10:37