• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中的事件介绍

C#中的事件介绍

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#中的委托和事件,c#中的事件,c#中键盘事件,c#中textbox事件,c#中鼠标事件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

事件

   语法

   访问修饰符 event 委托名称 事件名称;

   定义事件:
   public  delegate void delTest();

   public  event  delTest  eventTest;
</div>
   注册事件(可以给一个事件注册多个方法)
   eventTest += new delTest(method1);

   eventTest += new delTest(method2);
</div>
 

自定义事件的基础

    1.当一个结果发生时,有可能引起另外的一些反应。这就好像因果关系。而事件,则是这个因与果的内部联系。
    2.在C#中,我们经常看到:
private void button1_Click(object sender, EventArgs e)
{
 
        …………………….//代码段
 
}
</div>

自定义事件的实例

从网上找了一个比较容易理解的自定义事件实例,记录再次方便学习。原文地址:http://www.weikejianghu.com/article/59459.htm

发布事件的类TestEventSource:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EventDemo
{
    /// <summary>
    /// 发布事件的类
    /// </summary>
    public class TestEventSource
    {
        //定义事件参数类
        public class TestEventArgs : EventArgs
        {
            public readonly char KeyToRaiseEvent;
            public TestEventArgs(char keyToRaiseEvent)
            {
                KeyToRaiseEvent = keyToRaiseEvent;
            }
        }
        //定义delegate
        public delegate void TestEventHandler(object sender, TestEventArgs e);
        //用event 关键字声明事件对象
        public event TestEventHandler TestEvent;
        //事件触发方法
        protected virtual void OnTestEvent(TestEventArgs e)
        {
            if (TestEvent != null)
                TestEvent(this, e);
        }
        //引发事件
        public void RaiseEvent(char keyToRaiseEvent)
        {
            TestEventArgs e = new TestEventArgs(keyToRaiseEvent);
            OnTestEvent(e);
        }
    }
}
</div>

监听事件的类TestEventListener

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EventDemo
{
    /// <summary>
    /// 监听事件的类
    /// </summary>
    public class TestEventListener
    {
        //定义处理事件的方法,他与声明事件的delegate具有相同的参数和返回值类型
        public void KeyPressed(object sender, TestEventSource.TestEventArgs e)
        {
            Console.WriteLine("发送者:{0},所按得健为:{1}", sender, e.KeyToRaiseEvent);
        }
        //订阅事件
        public void Subscribe(TestEventSource evenSource)
        {
            evenSource.TestEvent += new TestEventSource.TestEventHandler(KeyPressed);
        }
        //取消订阅事件
        public void UnSubscribe(TestEventSource evenSource)
        {
            evenSource.TestEvent -= new TestEventSource.TestEventHandler(KeyPressed);
        }
    }
}
</div>

测试:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EventDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建事件源对象
            TestEventSource es = new TestEventSource();
            //创建监听对象
            TestEventListener el = new TestEventListener();
            //订阅事件
            Console.WriteLine("订阅事件\n");
          &

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#中的委托使用
  • 理解C#中的事件
  • C#中的委托介绍
  • C#中的事件介绍

相关文章

  • 2017-05-28详谈C# 图片与byte[]之间以及byte[]与string之间的转换
  • 2017-05-28C#中调用命令行cmd开启wifi热点的实例代码
  • 2017-05-28C#、vb.net及SQL判断指定年份是否为闰年的方法
  • 2017-05-28C#类中static变量用法分析
  • 2017-05-28.net 一些无法catch的异常
  • 2017-05-28C#计算矩阵的秩实例分析
  • 2017-05-28Gridview自动排序功能的实现
  • 2017-05-28C#实现根据字节数截取字符串并加上省略号的方法
  • 2017-05-28C#验证给定字符串是否为数字的方法
  • 2017-05-28适用于WebForm Mvc的Pager分页组件C#实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#写日志类实例
    • vs代码段快捷键设置(图文)
    • C# Guid.NewGuid获得随机数
    • C#实现json的序列化和反序列化实例代码
    • C# 判断字符为空的6种方法的效率实测对比
    • C#中的try catch finally用法分析
    • C#正则表达式的6个简单例子
    • C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法
    • C#中Linq查询基本操作使用实例
    • C#实现让窗体永远在窗体最前面显示的实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有