C#自定义事件监听实现方法

本文实例讲述了C#自定义事件监听实现方法。分享给大家供大家参考。具体实现方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApp
{
 /// <summary>
 /// 定义事件
 /// </summary>
 class CustomEvent
 {
  /// <summary>
  /// 定义委托
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  public delegate void UserRequest(object sender, EventArgs e);
  /// <summary>
  /// 此委托类型的事件
  /// </summary>
  public event UserRequest OnUserRequest;
  public CustomEvent()
  {
   UserEventMonitor uem = new UserEventMonitor(this);
  }
  public void DoRun()
  {
   bool flag = false;
   do
   {
    Console.WriteLine();
    Console.WriteLine("请输入:");
    string result = Console.ReadLine();
    if (result == "1")
    {
     if (OnUserRequest != null)
      OnUserRequest(this, new EventArgs());
    }
   } while (!flag);
  }
 }
 /// <summary>
 /// 事件监听
 /// </summary>
 class UserEventMonitor
 {
  public UserEventMonitor(CustomEvent cem)
  {
   // cem.OnUserRequest += ShowMessage;
   cem.OnUserRequest += delegate
   {
    Console.WriteLine("hello word!!");
   };
  }
  public void ShowMessage(object sender, EventArgs e)
  {
   Console.WriteLine("hello word!!");
  }
 }
 /// <summary>
 /// 调用类
 /// </summary>
 public class Run
 {
  static void Main(string[] args)
  {
   CustomEvent cem = new CustomEvent();
   cem.DoRun();
   Console.ReadLine();
  }
 }
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#自定义事件模拟风吹草摇摆效果

    这是一个自定义事件的例子.C#.WinForm.Visual Studio 2017. 在HoverTreeForm中画一块草地,上面有许多草(模拟). HewenqiTianyi类模拟天气,会引发"风"事件(HoverTreeWindEvent),风有东风或西风,或静止. 当吹东风,草往西边倒,吹西风则往东边到.静止则草不会东歪西倒. 草地上每一颗草都监听HoverTreeWindEvent事件,根据风向(WindDdirection)调整姿态. HewenqiTianyi中有定时器

  • C#中自定义事件和委托实例

    在windows 编程中用到最多的就是控件的事件了,微软给我们很好的方式,把注意力放到事件执行方法的设计和编码上,但是但我们真正弄懂了事件的真正出发执行原理的话,对我们的编程的提高真是非常榜的,例如在windows编程中 如果我单击了一个button按钮触发了button 的click事件  Button1_Click(){} ,但是有时候我们编程的时候,不但想要触发button 的单击事件,我还想要把其他的时间也要调用下来顺序执行,要实现这种方式,除了在方法最后对其他方法的调用,还可以利用将其

  • C#自定义事件及用法实例

    本文实例讲述了C#自定义事件及用法.分享给大家供大家参考.具体分析如下: 事件是C#中一个重要的内容,MSDN上有一个自定义事件的演示示例.我看了半天有点晕,所以新建了一个winform工程添加了一个按钮,然后找出调用的程序,一对比做了一个类似的示例,就明白了.看代码有时候比看文档来得更快. 所以还是一贯的原则,来干的,不来稀的. using System; namespace TestEventArgs { /// <summary> /// 这个类对应于EventArgs,做对比学习. /

  • asp.net中c#自定义事件的实现方法详解

    本文实例讲述了asp.net中c#自定义事件的实现方法.分享给大家供大家参考.具体分析如下: c#自定义事件分为六步,声明关于事件的委托,声明事件,编写引发事件的函数,事件处理,这里我们就来具体的介绍一下. C#自定义事件的具体实现步骤如下: 1.声明一个delegate: (用于事件的类型的定义) 如: 复制代码 代码如下: public delegate void 事件名称EventHandler(object serder, EventArgs e); 事件名称用你的自己的来代替,随后的E

  • 在C#使用字典存储事件示例及实现自定义事件访问器

    使用字典存储事件实例 accessor-declarations 的一种用法是公开很多事件但不为每个事件分配字段,而是使用字典来存储这些事件实例.这只在具有很多事件但您预计大多数事件都不会实现时才有用. public delegate void EventHandler1(int i); public delegate void EventHandler2(string s); public class PropertyEventsSample { private System.Collecti

  • C#自定义事件监听实现方法

    本文实例讲述了C#自定义事件监听实现方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApp { /// <summary> /// 定义事件 /// </summary> class CustomEvent { /// <summary> /// 定义委托 /// &

  • js实现滑动触屏事件监听的方法

    本文实例讲述了js实现滑动触屏事件监听的方法.分享给大家供大家参考.具体实现方法如下: function span_move_fun(){ var span = document.getElementById("move_k"); var span_left = $(span).offset().left; var span_top = $(span).offset().top; var start_left = $(span).offset().left; var start_top

  • vue鼠标悬停事件监听实现方法

    目录 前言 情景描述 解决方法 总结 前言 开发框架为 vue2.x 情景描述 需求是这样的:页面在鼠标悬停(不动)n秒之后,页面进行相应的事件. 比如在我的需求下,是鼠标悬停15秒之后,页面上三个数据弹窗轮询展示. 解决方法 我的思路中 涉及到了三个变量 data(){ return { polling: null, timeCount: 0, judgeTimer: null, } } polling: 是 轮询的时候的一个计时器timeCount: 是 判断鼠标是否移动的一个控制变量jud

  • js事件监听机制(事件捕获)总结

    在前端开发过程中我们经常会遇到给页面元素添加事件的问题,添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同,le浏览器只有事件冒泡,没有事件监听的机制,对于事件监听的兼容性问题是最大的难题: 1.直接把事件的方法写在页面结构上 function eventfun(){ //console.log(this); } <input type="button" onclick="eventfun()&qu

  • Android编程双重单选对话框布局实现与事件监听方法示例

    本文实例讲述了Android编程双重单选对话框布局实现与事件监听方法.分享给大家供大家参考,具体如下: 首先是自定义XML布局代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pare

  • springboot 事件监听的实现方法

    定义事件 @Getter public class TestEvent extends ApplicationEvent { private String msg; public TestEvent(Object source, String msg) { super(source); this.msg = msg; } } 定义事件监听(注解方式) @Component public class TestListen { @EventListener public void testListe

  • php实现事件监听与触发的方法

    本文实例讲述了php实现事件监听与触发的方法.分享给大家供大家参考.具体分析如下: 闲来无事,想了想PHP如何实现事件监听,参考了jQuery的事件绑定思路,简单的实现了一下. 主要功能: 1.绑定事件 支持一个事件绑定多个动作,支持绑定一次性事件 2.触发事件 3.注销事件 复制代码 代码如下: class Event {     protected static $listens       = array();           public static function listen

  • Android4.0.x Home键事件拦截监听的方法

    本文实例讲述了Android4.0.x Home键事件拦截监听的方法.分享给大家供大家参考,具体如下: 在2.3.x 的主要做法如下,具体实现网上有很多文章 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); } 代码移植到4.0.1后 this.getWindow()

  • Java添加事件监听的四种方法代码实例

    Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动): /** * Java事件监听处理--自身类实现ActionListener接口,作为事件监听器 * * @author codebrother */ class EventListener1 extends JFrame implements ActionListener { private JButton btBlue, btDialog; public EventListener1() { setTitle(

  • vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法

    上一篇文章介绍了vuejs实现的简单分页,如果我有几个页面都需要有分页效果,不可能每个页面都去复制一下这段代码吧,意思是封装一下,变成通用的组件. 首先使用基础 Vue 构造器,创建一个"子类",Vue.extend( options ) var barHtml = '<div class="page-bar">'+ '<ul>'+ '<li v-if="cur>1"><a v-on:click=&

随机推荐