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

gpfsuwkq  于 2023-01-26  发布在  C#
关注(0)|答案(5)|浏览(344)

我们如何使用C#模拟CTRL+V键(粘贴)?
我有一个文本框,它没有一个ID来访问,例如textbox1.Text = someValue在这里就不起作用了。
我想通过点击填充文本框(从剪贴板)。由于某些原因,我们确实需要模拟CTRL+V,这意味着我们不能使用外部库,如inputsimulator

2ledvvac

2ledvvac1#

字符与密钥
% =〉alt+ =〉shift并且^用于ctrl密钥

原始答复:

下面介绍了用另一个键模拟一个修饰键**步骤1:聚焦textBox,在它上面你想执行两个键,然后步骤2:**发送键,例如control-v将像"^{v}"一样发送。

target_textBox.Focus();
SendKeys.Send("^{v}");

target_textBox.Focus();仅在发送按键时目标文本框未聚焦时才需要

更新:要发送三个密钥(两个修改密钥加上其他密钥),如实现ctrl shift F1,您将发送以下内容

^+{F1}
Microsoft文档参考

fgw7neuy

fgw7neuy2#

为什么不重写TextBox OnClick事件,而在调用该事件时将Text属性设置为Clipboard. GetText()
例如:

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

d6kp6zgx3#

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

textbox1.Paste();
4ngedf3f

4ngedf3f4#

有些JS不允许以通常方式更改值

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

你应该试试这样的方法:

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

//但不是“^{v}”

au9on6nz

au9on6nz5#

如果操作系统中的语言不是英语,此选项可能不起作用:

SendKeys.Send("^{v}");

然后尝试此选项:

SendKeys.Send("+{INSERT}");

相关问题