如何使用C#模拟CTRL + V击键(粘贴)

时间:2013-03-25 17:33:35

标签: c# html winforms paste

我们如何使用C#模拟 CTRL + V 键(粘贴)?

我有一个没有访问ID的文本框,例如textbox1.Text = someValue在这里不起作用。
我想通过点击来填充该文本框(来自剪贴板)。出于某些原因,我们确实需要模拟 CTRL + V ,这意味着我们不能使用像inputsimulator这样的外部库。

4 个答案:

答案 0 :(得分:14)

修改密钥的代码

alt = %shift = +ctrl = ^

原始答案:

下面解释使用另一个键模拟单个修改键 Step1 :关注要在其上执行两个键的textBox,然后 Step2:发送密钥,例如control-v将像"^{v}"一样发送。这是代码

        target_textBox.Focus();
        SendKeys.Send("^{v}");
仅当在发送密钥

时未关注目标文本框时才需要

target_textBox.Focus();

<强>更新

如发送三个键(两个修改键加上其他键),如ctrl shift F1,您将执行

^+{F1}

答案 1 :(得分:3)

为什么不覆盖TextBox OnClick事件而不是调用事件时,将Text属性设置为Clipboard.GetText()

像:

private void textBox1_Click ( object sender, EventArgs e )
{
        textBox1.Text = Clipboard.GetText ();
}

答案 2 :(得分:1)

此功能已内置于:TextBoxBase.Paste()

textbox1.Paste();

答案 3 :(得分:0)

某些JS不允许以常规方式更改值

inputList[21].SetAttribute("value", txtEMail.Text);

您应该尝试这样的事情:

inputElement.InvokeMember("focus");
inputElement.InvokeMember("click"); //sometimes helpfull
Clipboard.SetDataObject(txtEMail.Text);
SendKeys.Send("^(v)");

//但不是“ ^ {v}”