首页 新闻 会员 周边

C#wpf 判断一个按键三分钟没被按过 就跳转别的窗体。

0
悬赏园豆:10 [已解决问题] 解决于 2019-08-08 12:54

wpf 判断一个按键三分钟没被按过 就跳转别的窗体。被按过了又重新计时。求大佬给个思路

菜鸡你n+1号的主页 菜鸡你n+1号 | 初学一级 | 园豆:14
提问于:2019-03-15 11:10
< >
分享
最佳答案
0

提供一个思路,看下能用不:

    using System.Windows;
    using System.Windows.Controls;
    
    namespace WinForm
    {
        /// <summary>
        /// UserControl1.xaml 的交互逻辑
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            MyThread mythread;
            System.Threading.Thread navT;
    
            public UserControl1()
            {
                InitializeComponent();
                mythread = new MyThread();
                navT = new System.Threading.Thread(mythread.Navigate);
                navT.Start();
            }
    
            /// <summary>
            /// 点击重新开启线程
            /// </summary>
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                navT.Abort();
                navT.Start();
            }
        }
    
        /// <summary>
        /// 自定义线程类
        /// </summary>
        class MyThread
        {
            public MyThread() { }
            public void Navigate()
            {
                System.Threading.Thread.Sleep(3 * 60 * 1000);//3分钟
                //
                //TODO:窗体跳转
                //
            }
        }
    }
收获园豆:10
三人乐乐 | 老鸟四级 |园豆:4819 | 2019-03-15 11:39
其他回答(3)
0

1. 定义一个变量记录上次点击的时间(默认为:窗体初始化的时间)

2. 每次点击更新该变量

3. 判断当前时间和该变量的时间差(大于3分钟跳转)

另起个线程,一定时间间隔(比如10秒)去判断一次
仅供参考

大志若愚 | 园豆:2138 (老鸟四级) | 2019-03-15 11:34
0

楼上的Form代码会让你程序慢慢死在os中。
重载个Button放个非线程Timer加个委托搞定,注意用完收拾干净,非线程Timer特么的跟Form不一样,wpf它不作为容器子项。

花飘水流兮 | 园豆:13560 (专家六级) | 2019-03-15 12:58
0

就是定义一个datetime类型 lastclicktime, 每次点击时, 更新这个时间
定义另一个while事件, 不断的判断这个时间与当前时间, 如果超过三分钟就跳走

风浪 | 园豆:2996 (老鸟四级) | 2019-03-18 12:36

有例子吗

支持(0) 反对(0) 菜鸡你n+1号 | 园豆:14 (初学一级) | 2019-03-18 13:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册