如何在控件上捕获事件Mouse Hold?

时间:2012-09-14 06:51:31

标签: c#

我想捕捉用户点击并在C#中的控件上保留鼠标的事件。

我在MSDN上阅读过,我只看到鼠标向下,鼠标向上,......但没有移动保持事件。

2 个答案:

答案 0 :(得分:5)

你需要在他们之间使用一些定时器来使用精神病变事件。

示例:

  • 的MouseDown
    • 启动计时器
  • 的MouseUp
    • 禁用计时器

如果用户持有更多定时器时间 - 调用事件处理程序,当mouseUp发生得更快然后定时器已经过去 - 禁用运行定时器。

答案 1 :(得分:-1)

首先,你应该使用秒表来检测你想要的时间。

using System.Diagnostics;

其次,定义秒表类的全局实例。

Stopwatch s = new Stopwatch();

这是你应该使用的第一个事件:

private void controlName_MouseDown(object sender, MouseEventArgs e)
{
    s.Start();
}

这是您应该使用的第二个事件:

private void controlName_MouseUp(object sender, MouseEventArgs e)
{
    s.Stop();
    //determine time you want . but take attention it's in millisecond
    if (s.ElapsedMilliseconds <= 700 && s.ElapsedMilliseconds >= 200)
    {
        //you code here.
    }           
    s.Reset();           
}