c# 如何判断鼠标的左键一直是按住的状态? dispatchertimer

2024-11-06 07:55:01
推荐回答(2个)
回答(1):

一、添加引用
windowsbase
二、添加命名空间
using System.Windows.Threading;
三、定义一些全局变量
public System.Windows.Threading.DispatcherTimer dispatcherTimer;
public int count;//用于计时间
四、添加一些事件
包括鼠标按下、鼠标弹起、DispatcherTimer的tick()事件
private void frmMain_MouseDown(object sender, MouseEventArgs e)
{
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
count = 0;
dispatcherTimer.Start();
}

private void frmMain_MouseUp(object sender, MouseEventArgs e)
{
dispatcherTimer.Stop();
MessageBox.Show("按了"+count.ToString()+"秒");

}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
count++;
}

关于DispatcherTimer更全面的介绍,在
http://msdn.microsoft.com/zh-cn/library/system.windows.threading.dispatchertimer.aspx#Y336

回答(2):

再MouseDown的事件里记录按下鼠标左键时的时间dateTime1.

然后在MouseUp事件里也记录一个时间dateTime2

同时在MouseUp事件里写如下代码:

int second = dateTime2.Second-dateTime1.Second;

Message.Show("按了"+second+"秒");