iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#事件怎么自定义
  • 248
分享到

C#事件怎么自定义

2023-06-17 13:06:58 248人浏览 独家记忆
摘要

这篇文章主要介绍“C#事件怎么自定义”,在日常操作中,相信很多人在C#事件怎么自定义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#事件怎么自定义”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!事件,是C

这篇文章主要介绍“C#事件怎么自定义”,在日常操作中,相信很多人在C#事件怎么自定义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#事件怎么自定义”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

事件,是C#编程模型中重要的一个概念,通过对事件的理解,可以更好的了解C#程序运行机制。C#中的事件,可以简单的理解为类或者对象发生了一件事,并且把这件事通知给了其他的类或者对象,其他的类或者对象可以根据事件的消息有所反应。这非常类似设计模式中的观察者模式。

引发事件的类或对象,可以称之为事件源,注册并对处理事件的类或者对象可以称为事件订阅者或者事件监听者,我比较喜欢称之为事件监听者。

比如:构建一个winform应用,在窗体FORM1简单放置一个按钮控件,然后,双击按钮,则可以进入代码视图中按钮click事件处理程序。

private void button1_Click(object sender, EventArgs e)   {   ///sender即表示事件源,e表示通过事件传递过来的消息   }

这时,还可以打开Form1.designer.cs,还可以找到如下代码:

this.button1.Click += new System.EventHandler(this.button1_Click);

这行代码表明,当前窗体注册了click事件(click就是Button对象的一个事件),并且用 button1_Click方法进行了处理。EventHandler是一个委托,关于委托可参见我的上一篇文章C#基础概念之委托。

以上是对C#事件的一些简单的解释。当然,我们也可以自定义事件。

自定义事件,分为如下几步:

第一步:首先在事件源对象定义事件

//定义事件 public event EventHandler myevnet;

第二步:在事件监听者,订阅事件 

//事件注册 this.myevnet+=new EventHandler(MyEventHandler);

第三步:在事件监听者,编写事件处理代码:

/// <summary>   /// 事件的处理   /// </summary>   /// <param name="sender"></param>   /// <param name="e"></param>   private void MyEventHandler(object sender, EventArgs e)   {   MessageBox.Show("myevent is raised.......");   }

第四步:在事件源对象引发事件

//判断事件是否被注册   if (myevnet != null)   {   //引发事件 myevnet(this.button1, new EventArgs());   }

这仅是个演示,供各位参考,下面给出完整代码,方便测试

简单自定义事件,完整代码:

public partial class Form1 : Form   {   //定义事件   public event EventHandler myevnet;   public Form1()   {   InitializeComponent();   //事件注册  this.myevnet+=new EventHandler(MyEventHandler);  }  private void button1_Click(object sender, EventArgs e)  {  MessageBox.Show("button1_Click");  //判断事件是否被注册  if (myevnet != null)  {  //引发事件  myevnet(this.button1, new EventArgs());  }  }  /// <summary>  /// 事件的处理  /// </summary>  /// <param name="sender"></param>  /// <param name="e"></param>  private void MyEventHandler(object sender, EventArgs e)  {  MessageBox.Show("myevent is raised.......");  }  }

当然,真环境下,自定义事件要比这个复杂一些,下面再举一个例子,在事件引发时,传递自定义的消息。

首先要自定义一个事件消息类,这个类继承于EventArgs

然后自定义委托,来处理事件。完整代码如下:

事件源方面:

///自定义事件委托   public delegate void MyeventHandler(object sender, MyEventArgs e);   public partial class AddGrade : Form   {   //声明事件   public event MyeventHandler myCustomevent;   public AddGrade()   {   InitializeComponent();  }  private void button1_Click(object sender, EventArgs e)  {  //dosomthing  //事件引发  if (myCustomevent != null)  {  myCustomevent(this, new MyEventArgs() { Message = this.textBox1.Text });  }  }  }  ///自定义事件消息类  public class MyEventArgs : EventArgs  {  public string Message { set; get; }  }

事件监听者方面:

public partial class EventDemo : Form   {   public EventDemo()   {   InitializeComponent();   }  private void button1_Click(object sender, EventArgs e)  {  AddGrade addGrad = new AddGrade();  //注册事件  addGrad.myCustomevent += new MyeventHandler(addGrad_myCustomevent);  addGrad.Show();   }  void addGrad_myCustomevent(object sender, MyEventArgs e)  {  //dosomthing  MessageBox.Show(e.Message);  }  }

到此,关于“C#事件怎么自定义”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C#事件怎么自定义

本文链接: https://www.lsjlt.com/news/289305.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#事件怎么自定义
    这篇文章主要介绍“C#事件怎么自定义”,在日常操作中,相信很多人在C#事件怎么自定义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#事件怎么自定义”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!事件,是C...
    99+
    2023-06-17
  • C#怎么为控件添加自定义事件及自定义触发
    本文小编为大家详细介绍“C#怎么为控件添加自定义事件及自定义触发”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么为控件添加自定义事件及自定义触发”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。先随便搞个事件...
    99+
    2023-06-30
  • C#中如何自定义事件
    这篇文章将为大家详细讲解有关C#中如何自定义事件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C#自定义事件C#语言中有77个关键字,其中delegate和event专门为C#中事件处理系统...
    99+
    2023-06-17
  • C#为控件添加自定义事件及自定义触发
    先随便搞个事件吧 public class TestEventrgs : EventArgs { private string _name; ...
    99+
    2024-04-02
  • Vue中怎么自定义事件
    本篇文章给大家分享的是有关Vue中怎么自定义事件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。事件绑定每个 Vue 实例都实现了事件接口 (E...
    99+
    2024-04-02
  • vue怎么自定义事件传参
    这篇“vue怎么自定义事件传参”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么自定义事件传参”文章吧。自定义事件传参...
    99+
    2023-06-30
  • C#如何定义事件
    小编给大家分享一下C#如何定义事件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!C#定义事件应用最近公司在上一个wpf项目,熟悉WPF的同学都知道,WPF控件中,"用户控件"这个概念非常常见,我们也经常...
    99+
    2023-06-18
  • WPF自定义路由事件
    与依赖项属性类似,WPF也为路由事件提供了WPF事件系统这一组成。为一个类型添加一个路由事件的方式与为类型添加依赖项属性的方法类似,添加一个自定义路由事件的步骤: 一、声明路由事件变...
    99+
    2024-04-02
  • vue怎么给自定义的组件绑定点击事件
    这篇文章主要介绍“vue怎么给自定义的组件绑定点击事件”,在日常操作中,相信很多人在vue怎么给自定义的组件绑定点击事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么给自定义的组件绑定点击事件”的疑...
    99+
    2023-06-30
  • 怎么用javascript实现自定义事件功能
    这篇文章主要介绍“怎么用javascript实现自定义事件功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用javascript实现自定义事件功能”文章能帮助大家解决问题。概述自定义事件很难派...
    99+
    2023-06-17
  • vue中怎么自定义移动端touch事件
    这期内容当中小编将会给大家带来有关vue中怎么自定义移动端touch事件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用法:**HTML** <div i...
    99+
    2024-04-02
  • C#中propertygrid控件怎么自定义使用
    要自定义使用C#中的PropertyGrid控件,您可以使用以下步骤:1. 创建一个Windows窗体应用程序或者一个自定义控件。2...
    99+
    2023-10-10
    C#
  • C++中怎么自定义类
    这篇文章将为大家详细讲解有关C++中怎么自定义类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。/////////////TestClass.h/////////////////// &nbs...
    99+
    2023-06-17
  • Vue组件中的自定义事件是什么
    小编给大家分享一下Vue组件中的自定义事件是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!主要介绍组件的自定义事件的概念,使用等。何为组件自定义事件:组件自定...
    99+
    2023-06-29
  • C#基于自定义事件EventArgs怎么实现发布订阅模式
    这篇文章主要介绍“C#基于自定义事件EventArgs怎么实现发布订阅模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#基于自定义事件EventArgs怎么实现发布订阅模式”文章能帮助大家解决问...
    99+
    2023-06-30
  • Vue组件的自定义事件和全局事件总线怎么使用
    这篇“Vue组件的自定义事件和全局事件总线怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组件的自定义事件和全局...
    99+
    2023-07-05
  • C#如何使用delegate类型设计自定义事件
    这篇文章主要介绍C#如何使用delegate类型设计自定义事件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用delegate类型设计自定义事件在C#编程中,除了Method和Property,任何Class都可以...
    99+
    2023-06-04
  • vue自定义组件怎么添加使用原生事件
    今天小编给大家分享一下vue自定义组件怎么添加使用原生事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。自定义组件如何添加使...
    99+
    2023-06-30
  • vue3.0-props、computed、自定义事件方式
    目录1. props验证1)props验证2)对象类型的props节点3)props验证2. 计算属性1)计算属性2)声明计算属性3)计算属性的使用注意点4)计算属性和方法3. 自定...
    99+
    2023-05-17
    vue3.0-props vue3.0computed vue3.0自定义事件
  • 如何创建 JavaScript 自定义事件
    目录怎么创建自定义事件事件定制冒泡 bubbles可取消 cancelable组合 composed给事件传递自定义数据命名约定双击事件总结前言: 相信大家肯定处理过很多的事件监听,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作