C# Form窗体 如果20分钟用户没有操作就执行退出登录的事件怎么实现?

解决方案 »

  1.   

    创建一个子线程,设置一个计时器,记录累加的时间,累加到你想要的时间,就执行一个特定的操作,例如:注销。
    在Form的鼠标移动和键盘操作的事件中重置计时器为0。
      

  2.   

    在程序里添加一个Timer计时器,设置20分后运行。
    可以在Onidle函数里重置计时器。
      

  3.   

    拖一个Timer控件到Form上,Interval属性设置为20*60*1000毫秒,在用户TextBox的TextChanged事件中让Timer.Enabled=true;在Timer的Tick事件中写一句Application.Exit();如果用户在20分钟内没有录入用户
    帐户程序就关了。
      

  4.   


    在Form的鼠标移动和键盘操作的事件中重置计时器为0。 
    这个是怎样实现啊,可不可以给我几行代买参考啊?谢谢!
      

  5.   


    请问Onidle在那个类库里面啊?我不是很明白你的意思,可以详细一点点吗?谢谢!
      

  6.   


            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                this.Timer1.Enabled = false;
            }        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
            {
                this.Timer1.Enabled = false;
            }
      

  7.   

    要判断你的这个Form的消息的,如果没有消息进入,或者进入的消息不是刷新这些消息,如果时间到了,就可以认为用户没有使用过你的这个FormForm的消息循环,要重写Form基类的WndProc窗口过程:
    protected override void WndProc(ref Message m)
    {
        //如果有用户活动类型的消息,那么在这里恢复计时时间为0,以便在下一个20分钟后再判断是否关闭
         
        base.WndProc(ref m);
    }关于定时,搂主可以用Timer也可以用Thread.Sleep结合多线程来做
      

  8.   


    怎么我的没有的,我的是VS2005 c#,要添加什么using ...吗?谢谢
      

  9.   

    呵呵,有的是这样的,它是Application类的一个事件委托:
    Application.Idle += 。
      

  10.   

    主窗口的构造函数里写:
    Application.Idle += new EventHandler(Application_Idle);然后,给你的Form类添加下面代码:
    private void Application_Idle(object sender, EventArgs e)
    {
       
    }