2017-06-20 59 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謝謝,更新了答案 –

相關問題