`
dotcpp
  • 浏览: 59905 次
  • 性别: 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继承
 
分享到:
评论

相关推荐

    asp.net自定义固定格式多文件批量上传

    综上所述,实现ASP.NET自定义固定格式多文件批量上传涉及了多个层面的技术,需要综合运用文件操作、服务器端处理、客户端交互以及安全性和性能优化等知识。通过合理的设计和实现,可以为用户提供高效、安全的文件...

    .net自定义事件编程

    总的来说,.NET自定义事件编程提供了一种高效、安全的方式来实现对象间的通信。理解并熟练应用上述知识点,可以帮助开发者构建更加健壮和灵活的系统。在实际项目中,根据需求选择合适的方法来处理事件,可以提高代码...

    asp.net 自定义控件源码

    ASP.NET自定义控件是开发ASP.NET Web应用程序时的一个重要技术。它允许开发者根据特定需求创建功能独特的用户界面元素,从而提高应用的可扩展性和可维护性。在本压缩包中,提供的“asp.net 自定义控件源码”是个人...

    .net分页控件,.net自定义分页控件

    综上所述,.NET自定义分页控件的创建是一个涉及UI设计、数据处理、性能优化和可扩展性等多个层面的复杂过程。通过自定义,我们可以实现更符合项目需求的功能,提升用户体验,同时也能锻炼我们的编程技巧和解决问题的...

    ASP.NET自定义控件实例教程

    ASP.NET自定义控件是.NET框架中用于构建可重用、可扩展的用户界面组件的重要技术。本实例教程旨在引导开发者深入理解并掌握这一技术,通过一系列由浅入深的例子,帮助你创建从简单到复杂的数据绑定控件。 首先,...

    asp.net自定义列源码

    在这个“asp.net自定义列源码”中,我们可以推测作者张亚东通过VB(Visual Basic)语言,实现了一种自定义列的功能,这对于学习ASP.NET特别是对数据展示有特定需求的初学者来说是非常有价值的。 在ASP.NET中,...

    .net自定义textbox控件

    在.NET框架中,WinForm应用开发常常涉及到对控件的自定义,以满足特定的界面设计和功能需求。本主题将深入探讨如何在.NET环境中创建一个自定义的TextBox控件,该控件不仅具备标准TextBox的功能,还带有下划线样式和...

    asp.net 自定义用户控件 事件

    ASP.NET自定义用户控件是开发高效、可重用网页应用程序的重要组成部分。它允许开发者创建具有特定功能的自定义组件,这些组件可以嵌入到网页中,并与其他ASP.NET控件一起工作。在ASP.NET中,自定义用户控件提供了一...

    asp.net 自定义分页

    通过学习和理解这些代码,你可以更好地掌握ASP.NET自定义分页的实现方式。 总的来说,自定义分页在ASP.NET中是一个相对复杂但必不可少的功能。它需要开发者具备良好的数据库操作能力,以及对ASP.NET页面生命周期的...

    asp.net 自定义控件 上图文件控件

    "asp.net 自定义控件 上图文件控件"指的是一个特别的自定义控件,它用于处理文件上传操作,同时还具有进度显示和时间跟踪的功能,这为用户提供了一种高效且直观的交互体验。 在创建自定义控件时,通常涉及以下步骤...

    ASP.NET自定义控件源代码

    在"ASP.NET自定义控件源代码"中,我们可以学习如何通过编写代码来自定义一个控件,并将其集成到网页中。 1. **自定义控件的基本概念**: 自定义控件是ASP.NET中的一种可重用组件,它可以是HTML元素、服务器控件...

    C# ASP.net自定义分页

    [Description("操作员选择不同页时产生的页更新事件,通过此事件处理把旧页面显示信息更新到选择页对应的数据信息")] public event EventHandler PageChanged; ``` 该事件用于通知宿主程序分页发生了变化。当用户...

    ASP.NET自定义验证控件

    总的来说,ASP.NET自定义验证控件是提升应用程序功能和用户体验的重要手段,尤其在处理特殊验证需求时,自定义控件能展现出其强大的灵活性和可定制性。理解并掌握自定义验证控件的创建和使用,对于提升ASP.NET开发...

    asp.net自定义控件代码例子

    在ASP.NET中,自定义控件是开发人员为了满足特定需求而创建的具有独特功能的服务器控件。...记住,实践是最好的老师,尝试创建自己的自定义控件并将其应用于实际项目,这将加深你对ASP.NET自定义控件的理解。

    超强的ASP.NET自定义客户端验证控件

    在这个场景中,"超强的ASP.NET自定义客户端验证控件"指的是开发者可以创建自己的验证控件,以实现更灵活、更个性化的用户输入验证。 在ASP.NET中,验证是非常重要的一环,它确保了用户提交的数据符合预设的业务规则...

    VB.NET自定义控件设置背景色透明

    在VB.NET中,创建自定义控件并设置其背景色为透明是一项常见的需求,这可以使界面设计更加灵活,用户能够看到控件背后的元素。本文将深入探讨如何实现这个功能。 首先,我们需要理解VB.NET中的控件绘图机制。在...

    ASP.NET自定义表达式构造器

    ASP.NET自定义表达式构造器是一种强大的工具,用于在运行时动态构建和解析Linq表达式树。在.NET框架中,表达式树是表示代码的类结构,它们可以被分析、修改并转换为其他形式的代码。这在很多场景下非常有用,比如ORM...

    vb.net 自定义控件datetimepicker

    在VB.NET编程环境中,开发人员经常使用DateTimePicker控件来处理日期和时间的选择。然而,标准的DateTimePicker控件在某些情况下可能无法满足特定的设计或功能需求,例如,当需要用户仅选择日期而不涉及时间,或者...

Global site tag (gtag.js) - Google Analytics