目前設想的是在螢屏長按幾秒后(假如是五秒),可以彈出一個提示框,然后執行其他的操作;
請問這個要怎么實作呢?
uj5u.com熱心網友回復:
專業點,什么是長安螢屏,直接手指按到顯示幕上?沒有設備支持你給多少錢也不能解決。所以專業店描述一下你的問題,什么情況下,操作什么設備,實作什么功能。
uj5u.com熱心網友回復:
emmm,是指手指長按在螢屏上的,設備就是類似于銀行辦卡操作的那種觸摸屏機器一樣,設備是支持的;就是假如我們有一個銀行的可觸摸屏,我想實作的功能就是,我在這個機器主界面的時候,長按螢屏任何地方(除了點擊會實作跳轉的功能區域)或者是某一塊區域設定的秒數后,螢屏會彈出一個提示框,請問這樣應該怎么實作;描述不夠專業,麻煩大神們指導。
uj5u.com熱心網友回復:
用timer吧,大概思路就是,在你的觸發TouchDown事件中 執行DeepTouch()監控是否長按 TouchUp事件執行DisposeTouch()
/// <summary>
/// 長按處理、開始計時
/// </summary>
private void DeepTouch()
{
_timer = new Timer(); //監控是否長按
_nDeepTouch = 0;
_timer.Interval = 1000;
_timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); //到達時間的時候執行事件;
_timer.Enabled = true;
_timer.Start();
}
/// <summary>
/// 開始計時長按時長
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
if (_nDeepTouch >= 5) //5s時進行多選操作
{
MessageBox.Show("長按時間大于5s!")
}
else _nDeepTouch++;
}
/// <summary>
/// 滑鼠/觸摸釋放處理
/// </summary>
private void DisposeTouch()
{
this.Dispatcher.Invoke(new Action(delegate //另一執行緒訪問主執行緒控制元件操作
{
_timer.Stop();
_nDeepTouch = 0;
_timer.Enabled = false;
}));
}
uj5u.com熱心網友回復:
MouseDown 和 MouseUpuj5u.com熱心網友回復:
https://blog.csdn.net/youyomei/article/details/79753619 采用委托實作uj5u.com熱心網友回復:
監聽左鍵按下和抬起事件,按下后timer啟動,指定時間后激活實際事件,時間不足抬起時timer關閉,重置timer
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/114947.html
標籤:C#
上一篇:.net開發的微信支付code_url有時回傳空值,有時就沒有問題,求大神解答這是什么問題
下一篇:登錄界面
