我们如何使用C#模拟 CTRL + V 键(粘贴)?
我有一个没有访问ID的文本框,例如textbox1.Text = someValue
在这里不起作用。
我想通过点击来填充该文本框(来自剪贴板)。出于某些原因,我们确实需要模拟 CTRL + V ,这意味着我们不能使用像inputsimulator这样的外部库。
答案 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}”