C#中如何判断一个窗体中鼠标左键按下超过三秒?

如题... 如题 展开
 我来答
FantasyChump
2008-08-16 · TA获得超过3288个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2236万
展开全部
long lastMouseDown; //局部变量

Public Form1() //窗体的构造函数
{
this.MouseDown += (object sender, MouseEventArgs e) =>
{
if (e.Button == MouseButtons.Left) lastMouseDown = DateTime.Now.Ticks;
else lastMouseDown = 0;
};
this.MouseUp += (object sender, MouseEventArgs e) =>
{
if (e.Button == MouseButtons.Left && lastMouseDown > 0)
{
TimeSpan p = new TimeSpan(DateTime.Now.Ticks - lastMouseDown);
if (p.TotalSeconds > 3)
{
MessageBox.Show("鼠标按下了 "+p.TotalSeconds+" 秒!");
}
lastMouseDown = 0;
}
};
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iceser
2008-08-16 · TA获得超过2708个赞
知道大有可为答主
回答量:695
采纳率:100%
帮助的人:447万
展开全部
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
_MouseDownTimer = new Timer();
_MouseDownTimer.Interval = 3000;
_MouseDownTimer.Tick += new EventHandler( OnMouseDownTimer_Tick );
}

void OnMouseDownTimer_Tick( object sender, EventArgs e )
{
_MouseDownTimer.Stop();
MessageBox.Show( "按下鼠标左键3秒。" );
}

private Timer _MouseDownTimer;

private void Form1_MouseDown( object sender, MouseEventArgs e )
{
if ( e.Button == MouseButtons.Left )
{
_MouseDownTimer.Start();
}
}

private void Form1_MouseUp( object sender, MouseEventArgs e )
{
if ( e.Button == MouseButtons.Left )
{
if ( _MouseDownTimer.Enabled ) _MouseDownTimer.Stop();
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Narvik小红帽
2008-08-16 · TA获得超过649个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:548万
展开全部
放个Timer控件
当MouseDown的时候开始计时
然后么你应该会了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式