4

我想捕捉用户在 C# 控件上单击并按住鼠标的事件。

我在 MSDN 上阅读过,我只看到事件 Mouse Down,Mouse Up,......但没有 Move Hold 事件。

4

2 回答 2

5

您需要使用mentinoed 事件,它们之间有一些计时器。

例子:

  • 鼠标按下
    • 启动定时器
  • 鼠标向上
    • 禁用定时器

如果用户持有的时间超过计时器时间 - 调用您的事件处理程序,当 mouseUp 发生得比计时器快时 - 禁用运行的计时器。

于 2012-09-14T06:57:16.207 回答
-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();           
}
于 2015-08-30T21:52:52.173 回答