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

比方说,我要做的是,鼠标左键长按三秒,然后执行Message.Show("按了3秒");不循环。也就是说,我要如何判断,鼠标左键按下了3秒... 比方说 ,我要做的是,鼠标左键长按三秒,然后 执行 Message.Show("按了3秒");
不循环。
也就是说,我要如何判断,鼠标左键 按下了3秒
展开
 我来答
百度网友801b91b
推荐于2017-11-24 · TA获得超过8071个赞
知道大有可为答主
回答量:1152
采纳率:100%
帮助的人:1684万
展开全部
一、添加引用
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
追问
恩,了解了,还有个问题。
我写在了鼠标按下的事件里

mousedown里有个事件,写的比如 Message.Show("不到2秒");
我现在想做的是,如果我按的事件不超过2秒,就执行上面的,如果超过了,就执行另一个,这个怎么弄?
因为我是放在画图软件里,比如画个圈, 鼠标点下就开始画,但如果在同一个点,点下鼠标2秒,鼠标的地方就挑菜单出来,这样的效果,dispatcherTimer 能做出来么
解决了,我追加30分,谢谢
追答
我提交了回答,但是百度没给力。。提交后不见了,我是第三次输入这东西了。。
后来我就直接发给你短信息了,请你查收~
pot2217331
2011-03-03 · TA获得超过226个赞
知道小有建树答主
回答量:201
采纳率:100%
帮助的人:88.6万
展开全部
再MouseDown的事件里记录按下鼠标左键时的时间dateTime1.

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

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

int second = dateTime2.Second-dateTime1.Second;

Message.Show("按了"+second+"秒");
追问
请问如何记录,能写个详细的方法么?
追答
就是设置一个全局变量
给这两个变量赋值就可以了.

很简单,不需要方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式