У меня есть простое приложение Windows Forms с TextBox
и Button
. Нажатие на Button
переместит фокус на TextBox
и имитирует нажатия клавиш Ctrl + C
для копирования содержимого в буфер обмена. Я делаю эту симуляцию клавиш с помощью SendInput
, также пробовал SendKeys.Send("^c")
. Это правильно работает для операции копирования, что я могу проверить, вставив содержимое в блокнот или что-то еще.
Затем я хочу программно получить это скопированное значение через Clipboard.GetText
. Однако проблема в том, что этот метод всегда возвращает предыдущее значение в буфере обмена вместо текущего. Например, если последовательность значений для моего TextBox
такова: «привет», «мир», то последовательность вывода такова: мусор, «привет». Ниже приведен мой код, использующий метод SendKeys
для простоты:
... highlight TextBox value...
SendKeys.Send("^c");
Thread.Sleep(100);
Console.WriteLine(Clipboard.GetText());