`
dotcpp
  • 浏览: 59507 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

.NET自定义事件处理

阅读更多

//首选在类中做如下操作:
public class CBook
{
    private string m_title;
    public delegate void TitleChangeHandle();   //1,创建委托
    public event TitleChangeHandle TitleChange;  //2 创建事件
    public string Title
    {
        set
        {
            this.m_title = value;
            TitleChange();   //3测试,当属性值改变时来触发事件
        }
    }
}
//在调用页面:
//首先编写事件处理函数:
void BookChange()
{
    Response.Write("事件执行了");
}
//最后用下面一个小例子测试一下:
CBook book = new CBook();
book.TitleChange+=new CBook.TitleChangeHandle(BookChange);//添加事件
book.Title = "test";

//==============================================
//EventHandler以及其它自定义的事件委托都是一类特殊的委托,他们有相同的形式:

delegate void 事件委托名(object sender,EventArgs e);

//object用来传递事件的发生者,比如二中的Button控件就是一个事件发生者;EventArgs用来传递事件的细节。

//例程二:
class Class1
{
    public delegate void UserRequest(object sender,EventArgs e); //定义委托
    public event UserRequest OnUserRequest; //定义一个委托类型的事件

    public void run()
    {
        while(true)
        {
            if(Console.ReadLine()=="a")
            {
                OnUserRequest(this,new EventArgs()); //产生事件
            }
        }
    }
}

// 事件接收类
class Class2
{
    static void Main(string[] args)
    {
        Class1 c1 = new Class1();
        //委托实例化后绑定到事件
        c1.OnUserRequest += new Class1.UserRequest(c1_OnUserRequest); 
        c1.run();
    }

    private static void c1_OnUserRequest(object sender, EventArgs e)//事件处理方法
    {
        Console.WriteLine("\t你触发了事件!");
    }
}


//例程三:程序代码

// 带事件数据的事件类,从EventArgs继承
class OnUserRequestEventArgs:EventArgs
{
    private string inputText;
    public string InputText
    {
        get
        {
            return inputText;
        }
        set
        {
            inputText = value;
        }
    }
}

// 事件发送类
class Class1
{
    public delegate void UserRequest(object sender,OnUserRequestEventArgs e);//声明委托
    public event UserRequest OnUserRequest;//定义一个委托类型的事件

    public void run()
    {
        while(true)
        {
            Console.WriteLine("请输入内容:");
            string a=Console.ReadLine();
            //if(a=="a")
            //{
            OnUserRequestEventArgs e1 = new OnUserRequestEventArgs();
            e1.InputText = a;
            OnUserRequest(this,e1);
            //}
        }
    }
}

// 事件接收类
class Class2
{
    [STAThread]
    static void Main(string[] args)
    {
        Class1 c1 = new Class1();
        c1.OnUserRequest += new Class1.UserRequest(c1_OnUserRequest);
        c1.run();
    }

    private static void c1_OnUserRequest(object sender, OnUserRequestEventArgs e)
    {
        Console.WriteLine("\t你输入的是:"+e.InputText);
    }
}

//例程三跟例程二唯一的差别在于自定义了一个类OnUserRequestEventArgs,从EventArgs继承
 
分享到:
评论

相关推荐

    .net自定义事件示例分享

    主要介绍了.net自定义事件示例,代码实现了热水器加热,报警器监控,当热水温度达到80度的时候报警器报警这样一个简单的事件处理程序,需要的朋友可以参考下

    ASP.Net中自定义Http处理及其应用

    ASP.Net中自定义Http处理及其应用

    FreeSwitch完整的自定义模块定义和改善自定义事件的例子

    FreeSwitch完整的自定义模块定义和改善自定义事件的例子,详细介绍见博客:https://blog.csdn.net/xxm524/article/details/126211171

    .net中自定义错误页面的实现方法

    .net中自定义异常页面的重定向都是通过web.config配置页面配置实现,其具体的实现方式有两种方式,下面话不多说了,来一起看看详细的介绍吧。 其一、通过节点system.web新增customErrors配置节点实现 IIS环境需求:...

    asp.net 异常处理跳转自定义错误页面Demo

    asp.net 异常处理跳转自定义404,500页面Demo实现,想要学习的可以看看,通过Application_Error 中拦截异常

    net自定义报表.zip

    定时检查数据库中是否有新的报表请求,如果有,根据请求生成报表(原来想用MSMQ来处理,但他需要服务器多安装一个服务,所以就直接用SqlServer了); ReportDemo是Asp.Net调用报表的例子...

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

    本文实例讲述了asp.net中c#自定义事件的实现方法。分享给大家供大家参考。具体分析如下: c#自定义事件分为六步,声明关于事件的委托,声明事件,编写引发事件的函数,事件处理,这里我们就来具体的介绍一下。 C#自定义...

    ASP.NET如何自定义项目模板详解

    面对以上一些问题,拥有一个符合自己团队的项目模板就显得比较重要了,这篇文章主要介绍在 ASP.NET 如果自定义项目模板。 内置的项目模板 在 VS 中,新建项目时我们都需要先选项目类型,这些类型选项本质上是内置的...

    VB.NET 2008 自定义(彩票矩阵)控件

    1)、设置属性枚举值,及对枚举值进行相应处理; 2)、如何设置类似Items ...的属性; 3)、如何对自定义属性进行归类。 4、如何设置用户控件在IDE工具箱的图标,改变一成不变齿轮的图标。 5、如何生成DLL文件。 ...

    .net 事件与委托

    在.net框架中,事件是将事件发送者(触发事件的对象)与事件接受者(处理事件的方法)相关联的一种代理类,即事件机制是通过代理类来实现的。当一个事件被触发时,由该事件的代理来通知(调用)处理该事件的相应方法

    vb.net WPF webbrowser 自定义浏览器V1.1

    vb.net WPF webbrowser 自定义浏览器V1.1 非源码 参考了 ExtendedWebBrowser2 WebImageList mshtml webbroser、javascript交互等多种资料和技术文档 相对完善地实现了 菜单栏 工具栏 收藏栏 状态栏 1.0版因搜索...

    asp.net WebAPI OWIN OAuth2.0授权自定义返回结果及错误或异常问题处理办法

    asp.net WebAPI OWIN OAuth2.0授权自定义返回结果及错误或异常问题处理核心代码,详情: https://www.cnblogs.com/wgx0428/p/12315546.html

    微信公众平台.net完整代码(包含自定义菜单及事件的响应)

    微信公众平台.net完整代码(包含自定义菜单及事件的响应),开发环境为VS2010,整个代码只需修改三个微信接口提供的值就可完美发布运行,菜单用单独的txt文件存储,可自行修改。

    基于ASP.NET的自定义SQL报表系统设计与实现.pdf

    基于ASP.NET的自定义SQL报表系统设计与实现.pdf

    vb.net DataGridView控件用法合集

    vb.net操作DataGridView控件的用法的集合,包括: 1. DataGridView当前的单元格属性取得、变更 2. DataGridView编辑属性 3. DataGridView最下面一列新追加行非表示 4. DataGridView判断当前选中行是否为新追加的...

    ASP.NET之自定义异步HTTP处理程序(图文教程)

    在此我感谢那些看了《ASP.NET之自定义同步HTTP处理程序》这篇文章以及看到了这篇《ASP.NET 之 自定义 异步HTTP处理程序》的亲们。前面的那篇可能看过MSDN的亲们一定会发现很多熟悉的地方。而我其实就是比较详细的...

    ASP.NET CORE学习教程之自定义异常处理详解

    主要给大家介绍了关于ASP.NET CORE学习教程之自定义异常处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    ASP.NET之自定义同步HTTP处理程序(图文教程)

    而自定义HTTP处理程序可以完全消除上面的问题,它只是一个.cs的类文件,并且你只要按照很简单的准备工作就可以获得很多的灵活度: 1.可以自定义用户访问何网页时响应该文件并把数据呈现发送给客户端  2.可以对所有...

    jQuery asp.net 用json格式返回自定义对象

    客户端用一个html页面调用一个ashx文件(一般http处理程序),返回 json格式的自定义对象: html: 代码如下: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ...

Global site tag (gtag.js) - Google Analytics