欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WinForm中Application.Idle方法詳解

 更新時間:2022年03月01日 08:57:57   作者:.NET開發(fā)菜鳥  
本文詳細講解了WinForm中的Application.Idle方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Application.Idle()方法表示:當(dāng)應(yīng)用程序處于空閑狀態(tài)時執(zhí)行相應(yīng)代碼。

示例程序

1、界面設(shè)計:一個簡單的Lable控件

2、代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace ApplicationIdleDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public System.Timers.Timer timer;
        private void Form1_Load(object sender, EventArgs e)
        {
            InitTimer();
            InitRefresh();
            Refresh();
        }

        /// <summary>
        /// 初始化Timer控件
        /// </summary>
        private void InitTimer()
        {
            timer = new System.Timers.Timer(120000);
            //到達定時時間的時候執(zhí)行的事件
            timer.Elapsed += new System.Timers.ElapsedEventHandler(TimeUp);
            //設(shè)置是執(zhí)行一次(false) 還是一直執(zhí)行(true)
            timer.AutoReset = true;
            //是否執(zhí)行System.Timers.Timer.Elapsed事件
            timer.Enabled = true;
            //啟動
            timer.Start();

        }

        /// <summary>
        /// 定時到點執(zhí)行的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void TimeUp(object sender, System.Timers.ElapsedEventArgs e)
        {
            Refresh();
        }

        private void Refresh()
        {
            this.lbl_idle.Text = "進入空閑期";
            string strPath = Application.StartupPath + @"test.txt";
            using (StreamWriter sw = new StreamWriter(strPath, true))
            {
                sw.WriteLine("開始進入空閑期,當(dāng)前時間:" + DateTime.Now);
                sw.Close();
            }
        }

        private void InitRefresh()
        {
            //設(shè)定IDLE自動結(jié)束
            Application.Idle += new EventHandler(OnApplicationIdle);
            //設(shè)定消息過濾
            FormMessageFilter MessageFilter = new FormMessageFilter();
            MessageFilter.ApplicationActive += new EventHandler(OnApplicationActive);
            Application.AddMessageFilter(MessageFilter);

        }

        /// <summary>
        /// 程序進入空閑時期時會一直執(zhí)行此事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnApplicationIdle(object sender, EventArgs e)
        {
            if (timer != null)
                timer.Start();
        }

        /// <summary>
        /// 當(dāng)鍵盤及鼠標(biāo)事件,關(guān)閉timer
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnApplicationActive(object sender, EventArgs e)
        {
            if (timer != null)
            {
                timer.Stop();
                EndIdle();
            }
                
        }

        private void EndIdle()
        {
            this.lbl_idle.Text = "結(jié)束空閑期,進入活動期";
            string strPath = Application.StartupPath + @"test.txt";
            using (StreamWriter sw = new StreamWriter(strPath,true))
            {
                sw.WriteLine("開始進入活動期,當(dāng)前時間:" + DateTime.Now);
                sw.Close();
            }

        }

        
    }

    public class FormMessageFilter : IMessageFilter
    {
        public event EventHandler ApplicationActive;

        /// <summary>
        /// 只要是按鍵盤及鼠標(biāo)便會引發(fā)事件
        /// 因為是為了監(jiān)視鍵盤及鼠標(biāo),所以均return false;
        /// return ture:會把輸入的值清除
        /// 0x100 /* WM_KEYDOWN 
        /// 0x101 /* WM_KEYUP 
        /// 0x200 /* WM_MOUSEMOVE 
        /// 0x201 /* WM_LBUTTONDOWN 
        /// 0x202 /* WM_LBUTTONUP 
        /// 0x203 /* WM_LBUTTONDBLCLK 
        /// 0x204 /* WM_RBUTTONDOWN
        /// 0x205 /* WM_RBUTTONUP
        /// 0x206 /* WM_RBUTTONDBLCLK
        /// 0x20a /* WM_MOUSEWHEEL
        /// </summary>
        public bool PreFilterMessage(ref Message m)
        {
            if (m.Msg == 0x100 || m.Msg == 0x101 || (m.Msg > 0x199 && m.Msg < 0x207) || m.Msg == 0x20a)
            {
                if (ApplicationActive != null)
                {
                    ApplicationActive(this, new EventArgs());
                }
            }
            return false;
        }
    }
}

到此這篇關(guān)于WinForm中Application.Idle方法的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#判斷日期是否到期的方法

    C#判斷日期是否到期的方法

    這篇文章主要介紹了C#判斷日期是否到期的方法,是C#程序設(shè)計中非常實用的技巧,需要的朋友可以參考下
    2014-08-08
  • 大家應(yīng)該掌握的多線程編程

    大家應(yīng)該掌握的多線程編程

    這篇文章主要介紹了大家應(yīng)該掌握的多線程編程,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • unity將圖片轉(zhuǎn)換成字體的方法

    unity將圖片轉(zhuǎn)換成字體的方法

    這篇文章主要為大家詳細介紹了unity將圖片轉(zhuǎn)換成字體的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Unity Shader實現(xiàn)2D水流效果

    Unity Shader實現(xiàn)2D水流效果

    這篇文章主要為大家詳細介紹了Unity Shader實現(xiàn)2D水流效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C#圖像處理之圖像平移的方法

    C#圖像處理之圖像平移的方法

    這篇文章主要介紹了C#圖像處理之圖像平移的方法,涉及C#操作圖形實現(xiàn)平移的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C# DataTable數(shù)據(jù)遍歷優(yōu)化詳解

    C# DataTable數(shù)據(jù)遍歷優(yōu)化詳解

    這篇文章主要介紹了C# DataTable數(shù)據(jù)遍歷優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#圖像處理之木刻效果實現(xiàn)方法

    C#圖像處理之木刻效果實現(xiàn)方法

    這篇文章主要介紹了C#圖像處理之木刻效果實現(xiàn)方法,可實現(xiàn)類似木刻效果的黑白照效果,需要的朋友可以參考下
    2015-04-04
  • C#簡單配置類及數(shù)據(jù)綁定

    C#簡單配置類及數(shù)據(jù)綁定

    這篇文章主要介紹了C#簡單配置類及數(shù)據(jù)綁定,原理比較簡單,適用于一些小型項目。主要實現(xiàn)保存配置到j(luò)son文件、從文件或?qū)嵗虞d配置類的屬性值、數(shù)據(jù)綁定到界面控件的功能,需要的朋友可以參考一下
    2021-11-11
  • WPF開發(fā)txt閱讀器實現(xiàn)目錄提取功能

    WPF開發(fā)txt閱讀器實現(xiàn)目錄提取功能

    這篇文章主要為大家詳細介紹了WPF開發(fā)txt閱讀器時如何實現(xiàn)目錄提取功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)

    C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)

    這篇文章主要為大家詳細介紹了C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論