2013-02-22 66 views
0

好吧,我想做什麼,它是什麼時候鼠標停止下來我希望它不斷按下一個鍵。它應該連續按下這個鍵直到我放下。C#mousedown事件連續按下鍵

想象一下,如果您願意,窗口上的左右按鈕, 然後通過單擊並按住右鍵,字母「R」連續顯示在文本框中,直到您釋放按鈕。我在做什麼與這種情況很少有關係,但你得到了我想要做的事情。

究竟是什麼我放在鼠標下來保持sendkeys永遠不會鎖定應用程序?

我希望我的問題有道理。大聲笑。

感謝

RT

private void pictureBoxKeyboard_MouseDown(object sender, MouseEventArgs e) 
{ 
//something goes here 
} 

回答

1

這是值得一讀...

http://msdn.microsoft.com/en-us/library/ms171548.aspx

SendKeys.Send( 「R」)

這也可能只是火一次,您可能需要附加一個啓動MouseDown事件並停止o的計時器在MouseUp事件中。然後你可以把SendKeys放到Timer.Tick事件中。

private void Form1_Load(object sender, EventArgs e) 
    { 
     this.timer1.Interval = 500; 
    } 

    private void button1_MouseUp(object sender, MouseEventArgs e) 
    { 
     timer1.Stop(); 
     this.Text = "moose-Up"; 
    } 

    private void button1_MouseDown(object sender, EventArgs e) 
    { 
     timer1.Start(); 
     this.Text = "moose-Down"; 
     this.richTextBox1.Select(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     SendKeys.Send("r"); 
     Debug.Print("tickling"); 
    } 

選擇您希望收到的SendKeys值控制...

+0

你是對的。有關定時器。謝謝! – user1944720 2013-02-25 01:18:06

+0

我很高興這是有幫助的......另外,如果你想你可以把一個局部變量放入類中以反映應該按什麼鍵,如果你有多個按鈕......只需在鼠標按下按鈕事件,然後在Tick()事件期間消耗var。 – zax0978 2013-02-25 02:16:18