2017-06-20 32 views
0

这段代码不断发送一个字符串。我需要一个解决方案,只需点击窗口中有焦点的按钮,即可发送提供的字符串一次。SendKeys.Send(“hello”);连续发送字符串我怎么发送只有一次

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     SendKeys.Send("This is a test..."); 
    } 
} 
+1

你能显示所有相关的代码吗? –

+0

它使用此代码发送密钥的次数是多少?这是唯一的代码?你确定这不会干扰其他逻辑吗? –

+0

@ rory.ap该代码似乎重现了我的“问题”。这不适合你吗? –

回答

1

这个问题似乎是在button1控制具有焦点的事实,当你发送某些键给它(如空间,在你的例子),它触发Click事件,你最终会一个无限循环。

尝试加入一个TextBox到窗体,然后将焦点设置到第一个(或者,如果你已经知道了应该得到的文本,确保其具有焦点调用SendKeys前的事):

private void button1_Click(object sender, EventArgs e) 
{ 
    textBox1.Focus(); 
    SendKeys.Send("This is a test..."); 
} 
+0

空间可以触发按钮上的点击事件(我在我的一个winforms应用程序中的一个焦点按钮上验证了这一点) –

+0

@BlakeThingstad谢谢,更新了答案 –

相关问题