2013-02-22 144 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