1

我有一个带有 aTextBox和 a的简单 Windows 窗体应用程序Button。单击Button将焦点放在TextBox并模拟击键Ctrl + C以将内容复制到剪贴板。我正在用这个键模拟SendInput,也试过了SendKeys.Send("^c")。这适用于复制操作,因为我可以通过将内容粘贴到记事本或其他东西来验证。

然后我想以编程方式通过Clipboard.GetText. 但是,问题在于此方法似乎总是返回剪贴板中的先前值而不是当前值。例如,如果 my 的值序列TextBox是:“hello”、“world”,那么输出序列是:junk、“hello”。为了简单起见,以下是我使用该SendKeys方法的代码:

... highlight TextBox value...

SendKeys.Send("^c");
Thread.Sleep(100);

Console.WriteLine(Clipboard.GetText());
4

3 回答 3

3

看起来需要在将文本放入剪贴板之前执行消息循环

尝试使用

  Application.DoEvents();

而不是延迟

于 2012-10-23T18:50:29.077 回答
1
 SendKeys.SendWait("^c");
 Clipboard.GetText(TextDataFormat.Text);
于 2013-08-22T04:25:17.923 回答
0

试试这个:

textBox1.Focus();
Clipboard.SetText(textBox1.Text);
textBox2.Text = Clipboard.GetText();
于 2012-10-23T17:36:47.083 回答