最近在做WinCE程序,其间想模仿WinCE机子系统所带的功能--“长按屏幕一点来模拟右键(CE里是没有鼠标右键事件的)”,我是想在自己程序里的pictureBox中做这个功能,在网上查看了好多资料都没有讲的很清楚,也没有解决问题,最后请教了一位资深前辈终于解决,设计思路其实非常简单,大体是这样的:首先建立一个timer,设置一段时间间隔(就是按下多久后弹出菜单),将timer的Enable设置为false,当然一个上下文菜单是必不可少的,在MouseDwon事件下写如下程序:
private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { priorPoint.X = e.X;//记录鼠标当前坐标 priorPoint.Y = e.Y;//同上(priorPoint前面已经声明) timer1.Enabled = true;//开启计时器 }
在MouseMove和MouseUp下将timer1的Enabled设置为false,在timer1下写下如下事件
private void timer1_Tick(object sender, EventArgs e)
{
contextMenu1.Show(pictureBox1, new Point(priorPoint.X, priorPoint.Y));//弹出上下文菜单
timer1.Enabled = false;
}
这样就非常简单的完成了这个功能。