我们如何使用 C# 模拟CTRL+V键(粘贴)?
我有一个没有用于访问的 id 的文本框,例如textbox1.Text = someValue
在这里不起作用。
我想通过单击来填充该文本框(从剪贴板)。由于某些原因,我们确实需要模拟CTRL+ V,这意味着我们不能使用像inputsimulator这样的外部库。
我们如何使用 C# 模拟CTRL+V键(粘贴)?
我有一个没有用于访问的 id 的文本框,例如textbox1.Text = someValue
在这里不起作用。
我想通过单击来填充该文本框(从剪贴板)。由于某些原因,我们确实需要模拟CTRL+ V,这意味着我们不能使用像inputsimulator这样的外部库。
字符与键
%
=> alt
, +
=>shift
和^
for 发送ctrl
密钥
原答案:
下面解释了单个修饰键与另一个键的模拟
步骤 1:聚焦文本框,您要在其上执行两个键,然后步骤 2:发送键,例如 control-v 将像发送一样"^{v}"
。这是代码
target_textBox.Focus();
SendKeys.Send("^{v}");
target_textBox.Focus();
仅当发送密钥时目标文本框未聚焦时才需要
更新:对于发送三个键(两个修改键加上其他键)喜欢实现ctrl shift F1
你将发送以下
^+{F1}
为什么不覆盖 TextBox OnClick 事件,而不是在调用事件时,将 Text 属性设置为 Clipboard.GetText()
喜欢:
private void textBox1_Click ( object sender, EventArgs e )
{
textBox1.Text = Clipboard.GetText ();
}
此函数已内置:TextBoxBase.Paste()
textbox1.Paste();
一些 JS 不允许以通常的方式改变值
inputList[21].SetAttribute("value", txtEMail.Text);
你应该尝试这样的事情:
inputElement.InvokeMember("focus");
inputElement.InvokeMember("click"); //sometimes helpfull
Clipboard.SetDataObject(txtEMail.Text);
SendKeys.Send("^(v)");
//但不是“^{v}”