由委托说明事件的由来2

2024-06-20 19:08
文章标签 说明 事件 委托

本文主要是介绍由委托说明事件的由来2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于以上两个不足,我们可以使用事件来解决问题。

1、即在用户控件的代码如下:

namespace WindowsFormsApplication1
{
    public delegate void OnShowInfoDelegate();//定义委托类型

    public partial class EventUserControl : UserControl
    {
        public event ShowInfoDelegate On_showinfo;//event是事件的关键字,在声明实例时使用关键字定义事件。
        public EventUserControl()
        {
            InitializeComponent();
        }
        int count = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            count++;
            if (count == 3)
            {
                On_showinfo();
                count = 0;
            }
           
        }

    }
}

那么在form窗体加载的时候也要为委托指定方法:

private void Form1_Load(object sender, EventArgs e)
        {
           

            this.eventUserControl1.On_showinfo += new ShowInfoDelegate(eventUserControl1_On_showinfo);
        }

与委托指定方法不同的是,此处只能通过+=来绑定方法,写好+=后双击Tab键,即可将所需的方法写出。然后修改方法中的内容,

 void eventUserControl1_On_showinfo()
        {
            MessageBox.Show("您连续三次点击了form1按钮");
        }

form2窗体中的代码一样。

//事件也是可以有多个的,可以为一个控件注册多个事件
            this.eventUserControl1.On_showinfo += new ShowInfoDelegate(Button_Click);
            this.eventUserControl1.On_showinfo += new ShowInfoDelegate(ShowInFo);
            this.eventUserControl1.On_showinfo += new ShowInfoDelegate(ShowInFo1);

 

如果再添加一个button,代码如下:

 private void button1_Click(object sender, EventArgs e)
        {
           

            //事件只能被注册,不能像委托一样直接调用,所以无法再外部直接调用事件。事件一定是被触发的,不能是被显示调用的。
            //this.eventUserControl1.On_showinfo();     (这样写会报错,因为事件只能写在+=或-=的左边)
            //可以使用-=删除控件的某个事件,但是不能使用=覆盖控件现有的所有事件
            this.eventUserControl1.On_showinfo -= ShowInFo1;
        }

 

这篇关于由委托说明事件的由来2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1079001

相关文章

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A