C#如何实现长按屏幕可以弹出一个提示框

[复制链接]
查看11 | 回复6 | 2021-1-27 06:27:20 | 显示全部楼层 |阅读模式
目前设想的是在屏幕长按几秒后(假如是五秒),可以弹出一个提示框,然后执行其他的操作;
请问这个要怎么实现呢?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:27:20 | 显示全部楼层
专业点,什么是长安屏幕,直接手指按到显示器上?没有设备支持你给多少钱也不能解决。
所以专业店描述一下你的问题,什么情况下,操作什么设备,实现什么功能。
回复

使用道具 举报

千问 | 2021-1-27 06:27:20 | 显示全部楼层
emmm,是指手指长按在屏幕上的,设备就是类似于银行办卡操作的那种触摸屏机器一样,设备是支持的;
就是假如我们有一个银行的可触摸屏,我想实现的功能就是,我在这个机器主界面的时候,长按屏幕任何地方(除了点击会实现跳转的功能区域)或者是某一块区域设定的秒数后,屏幕会弹出一个提示框,请问这样应该怎么实现;描述不够专业,麻烦大神们指导。
回复

使用道具 举报

千问 | 2021-1-27 06:27:20 | 显示全部楼层
用timer吧,大概思路就是,在你的触发TouchDown事件中执行DeepTouch()监控是否长按TouchUp事件执行DisposeTouch()
///
///长按处理、开始计时
///
privatevoidDeepTouch()
{
_timer=newTimer();//监控是否长按
_nDeepTouch=0;
_timer.Interval=1000;
_timer.Elapsed+=newElapsedEventHandler(timer_Elapsed);//到达时间的时候执行事件;
_timer.Enabled=true;
_timer.Start();
}
///
///开始计时长按时长
///
///
///
privatevoidtimer_Elapsed(objectsender,ElapsedEventArgse)
{
if(_nDeepTouch>=5)//5s时进行多选操作
{
MessageBox.Show("长按时间大于5s!")
}
else_nDeepTouch++;
}
///
///鼠标/触摸释放处理
///
privatevoidDisposeTouch()
{
this.Dispatcher.Invoke(newAction(delegate//另一线程访问主线程控件操作
{
_timer.Stop();
_nDeepTouch=0;
_timer.Enabled=false;
}));
}

回复

使用道具 举报

千问 | 2021-1-27 06:27:20 | 显示全部楼层
MouseDown和MouseUp
回复

使用道具 举报

千问 | 2021-1-27 06:27:20 | 显示全部楼层
https://blog.csdn.net/youyomei/article/details/79753619采用委托实现
回复

使用道具 举报

千问 | 2021-1-27 06:27:20 | 显示全部楼层
引用2楼hzxcaq的回复:emmm,是指手指长按在屏幕上的,设备就是类似于银行办卡操作的那种触摸屏机器一样,设备是支持的;
就是假如我们有一个银行的可触摸屏,我想实现的功能就是,我在这个机器主界面的时候,长按屏幕任何地方(除了点击会实现跳转的功能区域)或者是某一块区域设定的秒数后,屏幕会弹出一个提示框,请问这样应该怎么实现;描述不够专业,麻烦大神们指导。

监听左键按下和抬起事件,按下后timer启动,指定时间后激活实际事件,时间不足抬起时timer关闭,重置timer
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行