TimeExit 界面无点击定时退出类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace Share
{
public class TimeExit
{
//单例模式
private static readonly TimeExit m_TimeExit = new TimeExit();
public static TimeExit Instance() { return m_TimeExit; }
private TimeExit()
{
timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件; timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
}
/// <summary>
/// 开始时间
/// </summary>
public static DateTime StartTime = DateTime.Now;
/// <summary>
/// 设置定时退出时间间隔
/// </summary>
public int Time = ;
/// <summary>
/// 剩余时间
/// </summary>
public int TimeRemain = ; private System.Timers.Timer timer;
private List<Label> LableLst = new List<Label>();
///// <summary>
///// 定时要关闭的窗口集合
///// </summary>
public List<Form> FormLst = new List<Form>();
//定义委托
public delegate void IntervalHandle(object sender, EventArgs e);
//定义事件
/// <summary>
/// 到时间执行的事件
/// </summary>
public event IntervalHandle IntervalClicked;
/// <summary>
/// 开启定时退出器
/// </summary>
public void Start()
{
timer.Enabled = true;
StartTime = DateTime.Now;
} private void theout(object sender, EventArgs e)
{
TimeSpan lastTimeSpans = DateTime.Now - StartTime;
TimeRemain = Time - (int)lastTimeSpans.TotalSeconds;
///全部界面的定时显示都改
foreach (var item in LableLst)
{
item.Invoke(new Action(() =>
{
item.Text = TimeRemain.ToString();
}));
}
if (lastTimeSpans.TotalSeconds >= Time)
{
timer.Enabled = false;
Interval();
}
}
/// <summary>
/// 关闭定时退出器
/// </summary>
public void Stop()
{
timer.Enabled = false;
HideText();
}
/// <summary>
/// 到时间执行的事件
/// </summary>
private void Interval()
{
foreach (var item in FormLst)
{
item.Close();
}
IntervalClicked?.Invoke(this, null);
}
public void Add(Label lb)
{
LableLst.Add(lb);
} public void Romove(Label lb)
{
LableLst.Remove(lb);
} private void HideText()
{
///全部界面的定时显示都改
foreach (var item in LableLst)
{
item.Invoke(new Action(() =>
{
item.Text = "";
}));
}
} public void MouseUp(object sender, MouseEventArgs e)
{
StartTime = DateTime.Now;
}
}
}
TimeExit 界面无点击定时退出类的更多相关文章
- QTableWidget界面有数据之后鼠标点击无响应界面无响应
1.问题:QTableWidget上出现数据之后,界面无响应,鼠标点击没有响应,但是还是可以正常接收数据,连关闭按钮都无法关闭,必须通过杀死进程来关闭程序.有的电脑是无响应,有的电脑又可以. 2.分析 ...
- android 自己主动拒接后再取消自己主动拒接,该联系人来电界面无图标显示,且点击挂断无反应
1. 设置一个联系人为自己主动拒接 2. 该联系人来电 3. 取消该联系人的自己主动拒接 4. 该联系人来电 Error: 来电界面无头像显示,直接显示黑屏,且点击拒接butt ...
- 11 AlarmHandler定时处理类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...
- 上传头像,界面无跳转,php+js
上传头像,界面无跳转的方式很多,我用的是加个iframe那种.下面直接上代码. html: //route 为后端接口//upload/avatar 为上传的头像的保存地址//imgurl=/uplo ...
- Toolbar 和 CollapsingToolbarLayout一起使用时menu item无点击反应解决办法
昨天一直在琢磨为什么Toolbar和CollapsingToolbarLayout一起使用时menu item无点击放应的原因,后来在stackoverflow上一条回答,说可能是Toolbar的背景 ...
- Ubuntu16.04 下的网易云出现网络异常、无法播放,界面无响应问题的统一解决
能够在Linux系统下体验到原生界面的网易云音乐是件不错的事情,但是它总是经常性的出现网络异常,界面无响应的问题 为了听歌的体验,进行深入探究: 首先通过终端启用网易云音乐:sudo netease- ...
- jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类
jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类 本例有另外2个关联案例,演示地址分别为2.php,3.php 演示 XML/HTML Code <div class="ar ...
- vue数组更新界面无变化
1. vue数组更新界面无变化 1.1. 说明 对数组进行更新或者添加,一定要注意方式,我的情况是数组套数组,双重循环,在造数据的时候,不断从尾部添加数据,所以写成了如下形式,每次下拉都会去加载一批相 ...
- flutter 安卓再次点击返回退出应用
安卓手机点击实体或者虚拟返回键,会返回上一级,当到达最上层是,点击返回退出应用,为了防止用户连续点击返回,导致应用退出,在用户点击返回到最上层时,如果再次点击返回,第一次不退出,并提升用户再次点击退出 ...
随机推荐
- Vue学习笔记之Nodejs中的NPM使用
0x00 NPM是什么 简单的说,npm就是JavaScript的包管理工具.类似Java语法中的maven,gradle,python中的pip. 0x01 NPM安装 傻瓜式的安装. 第一步:打开 ...
- 基于OpenCV进行图像拼接原理解析和编码实现(提纲 代码和具体内容在课件中)
一.背景 1.1概念定义 我们这里想要实现的图像拼接,既不是如题图1和2这样的"图片艺术拼接",也不是如图3这样的"显示拼接",而是实现类似"BaiD ...
- 解决数据库里表字段带下划线,实体类转小驼峰,Mapper的映射问题
mybatis中mapUnderscoreToCamelCase的使用 mybatis-config.xml配置: <?xml version="1.0" encoding= ...
- spark udf 初识初用
直接上代码,详见注释 import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{SparkContext, Spark ...
- 递归--练习4--noi666放苹果
递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...
- 剑指offer面试题19 二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- C#接口作用
1.C#接口的作用 : C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正 ...
- 108. Convert Sorted Array to Binary Search Tree 109. Convert Sorted List to Binary Search Tree -- 将有序数组或有序链表转成平衡二叉排序树
108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ...
- Java9新特性
转载:http://blog.csdn.net/qq_32524177/article/details/77014757 写在前面的话:Java9来了,搜索了很多关于Java9的新特性,但文献不多,特 ...
- js 数据函数
//shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] ...