zoukankan      html  css  js  c++  java
  • 委托和事件简单样例

      先上全部代码样例

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;
    
    namespace Event
    {
        public partial class Form1 : Form
        {
            private delegate void TextWacthEventHandler();
    
            private event TextWacthEventHandler textWatch;
    
            private bool flag = true;
            public Form1()
            {
                InitializeComponent();
                textWatch += new TextWacthEventHandler(OnTextChaned);
                Thread thread1 = new Thread(CheckText);
                thread1.Start();
            }
    
            private void OnTextChaned()
            {
                if (textWatch!=null)
                {
                    MessageBox.Show("注意!");
                }
            }
    
            private void CheckText()
            {
                while (true)
                {
                    if (txt_Text.Text.ToString() == "123")
                    {
                        OnTextChaned();
                        flag = false;
                    }
                    Thread.Sleep(1 * 1000);
                }
            }
        }
    }

      利用Winform做了一个样例,窗体上只加了一个TextBox进行测试。测试内容是监控TextBox的内容,当TextBox中输入的内容为123时,触发时间,并会有弹窗提示。

      创建一个事件前,首先需要创建一个委托,这里将委托命名为TextWacthEventHandler。

      之后我们再开始创建事件,事件的类型是刚刚定义的委托。格式为: event 委托类型 事件名称,即 event TextWacthEventHandler textWatch。这里event是事件的关键字,返回类型是委托。

      创建完事件,我们还需要写一个方法OnTextChanged来处理这个事件,否则刚才创建的事件就白瞎了。每当调用到该方法时,则触发事件。

      最后,我们得再写一个CheckText方法来不停地每隔一秒都监控一次TextBox的内容,否则我们将无法触发事件。这里我设置了一旦触发事件将不会再进行对TextBox的监控,也可以设置成不论是否触发事件都会继续每隔一秒监控一次,只需要让while循环一直继续就行。

  • 相关阅读:
    C# WPF透明黑色样式窗口
    ExtJS速学
    编译away3d例程序记
    用VC加载Lua.lib,C++调用lua脚本函数
    mysql数据库备份
    Google TTS(文字转语音)api 2
    C Sharp Coding Standards
    微信公众平台功能大杂烩 ip/域名查询 车牌号归属地查询 手机归属地查询 公交查询 英汉互译
    google jsapi学习记录
    Google TTS(文字转语音)api
  • 原文地址:https://www.cnblogs.com/yupeiyuan/p/5588023.html
Copyright © 2011-2022 走看看