当前位置: 首页 > news >正文

海口建站百度q3财报减亏170亿

海口建站,百度q3财报减亏170亿,佰联轴承网做的网站,wordpress图片太大通过委托实现跨窗体传值 前言正文1、委托及事件2、通过委托实现跨窗体传值的步骤1.在子窗体中定义委托2.在子窗体中声明一个委托类型的事件3.调用委托类型事件4.在实例化子窗体后,子窗体订阅事件接受方法5.实现具体的事件 3、具体示例4、完整代码5、实现效果 前言 …

通过委托实现跨窗体传值

  • 前言
  • 正文
    • 1、委托及事件
    • 2、通过委托实现跨窗体传值的步骤
      • 1.在子窗体中定义委托
      • 2.在子窗体中声明一个委托类型的事件
      • 3.调用委托类型事件
      • 4.在实例化子窗体后,子窗体订阅事件接受方法
      • 5.实现具体的事件
    • 3、具体示例
    • 4、完整代码
    • 5、实现效果

前言

在本文中主要介绍 如何通过委托实现跨窗体传值,并以简单的示例进行展示。

正文

1、委托及事件

  1. 委托:委托是方法的抽象,与类一样是一种用户自定义类型,存储的是一系列具有相同签名和返回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行;
  2. 委托类型声明:委托是类型,与类class 处于同一个级别,委托类型必须在被用来创建变量之前声明:a、以deleagate关键字开头 b、返回类型+委托类型名+参数列表(可以为空):修饰符 delegate 返回类型 委托类型名(参数列表)
  3. 委托与方法的区别:委托只是一个命令,做事情的是方法,在代码世界中委托只是存储了各个方法的地址,而它自己是什么也不做的;
  4. 委托的开发步骤:a、定义一个委托 b、定义一个委托类型的变量 c、给委托赋值(绑定方法) d、调用委托;
  5. 事件:事件是基于委托的,为委托提供一个订阅或发布的机制;事件是一种特殊的委托,调用事件和委托是一样的;
  6. 事件声明:事件可以被看作是委托类型的一个变量,通过事件注册、取消多个委托和方法;修饰符 event 委托类型 事件名称

2、通过委托实现跨窗体传值的步骤

1.在子窗体中定义委托

        public delegate void 委托类型名(参数列表);

2.在子窗体中声明一个委托类型的事件

        public event 委托类型名 事件名称;

3.调用委托类型事件

        private void button1_Click(object sender, EventArgs e){事件名称(参数列表);}

4.在实例化子窗体后,子窗体订阅事件接受方法

        private void button2_Click(object sender, EventArgs e){f2 = new Form2();f2.Show();f2.事件名称 += new Form2.委托类型名(方法名);}

5.实现具体的事件

        public void 方法名(参数列表){具体方法}

3、具体示例

  1. 在子窗体中定义定义一个委托,委托类型名为SendValue,需要传递2个参数

            //1、先在子窗体中定义一个委托,根据实际需求定义委托;这个SendValue委托中需要传递2个参数public delegate void SendValue(int a,int b);
    
  2. 在子窗体中声明一个委托类型的事件,委托类型为SendValue,事件名称为SendVauleEvent

            //2、在子窗体中声明一个委托类型的事件,将委托与事件相关联public event SendValue SendVauleEvent;
    
  3. 在button1的Click事件中,调用委托类型事件SendVauleEvent

            private void button1_Click(object sender, EventArgs e){//3、调用(实现)委托类型事件,并传递相关参数SendVauleEvent(1, 5);}
    
  4. 在实例化子窗体后,子窗体订阅事件接受方法,相当于子窗体委托主窗体做了一个事情

            private void button2_Click(object sender, EventArgs e){//实例化窗体2f2 = new Form2();f2.Show();//4、在实例化子窗体后,声明子窗体的事件,即初始化事件//子窗体订阅事件接受方法,相当于子窗体委托主窗体做了一个事情f2.SendVauleEvent += new Form2.SendValue(Add);//接受的方法 :Add}
    
  5. 实现具体的事件Add(),实现简单的加法运算

            /// <summary>/// 5、实现具体的事件,定义一个方法/// </summary>/// <param name="a">参数1</param>/// <param name="b">参数2</param>public void Add(int a,int b){label1.Text = (a + b).ToString();}
    

4、完整代码

  1. 主窗体代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;namespace DelegatePractice
    {public partial class Form1 : Form{public Form2 f2;public Form1(){InitializeComponent();///跨界面传值///1、主界面处理只需要实例化其他界面即可///2、在需要的界面申明委托和事件///3、在主界面订阅事件和接受方法即可}/// <summary>/// 5、实现具体的事件,定义一个方法/// </summary>/// <param name="a">参数1</param>/// <param name="b">参数2</param>public void Add(int a,int b){label1.Text = (a + b).ToString();}private void button2_Click(object sender, EventArgs e){//实例化窗体2f2 = new Form2();f2.Show();//4、在实例化子窗体后,声明子窗体的事件,即初始化事件//子窗体订阅事件接受方法,相当于子窗体委托主窗体做了一个事情f2.SendVauleEvent += new Form2.SendValue(Add);//接受的方法 :Add}private void button1_Click(object sender, EventArgs e){Add(1, 2);}}
    }
  2. 子窗体代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;namespace DelegatePractice
    {public partial class Form2 : Form{public Form2(){InitializeComponent();}//1、先在子窗体中定义一个委托,根据实际需求定义委托;这个SendValue委托中需要传递2个参数public delegate void SendValue(int a,int b);//2、在子窗体中声明一个委托类型的事件,将委托与事件相关联public event SendValue SendVauleEvent;private void button1_Click(object sender, EventArgs e){//3、调用(实现)委托类型事件,并传递相关参数SendVauleEvent(1, 5);}}
    }

5、实现效果

在这里插入图片描述

http://www.15wanjia.com/news/15237.html

相关文章:

  • 青岛市医疗保险网站开网站怎么开
  • 动画制作app推荐seo网站排名
  • 宁波外发加工网南宁网站建设优化服务
  • bootstrap 风格网站企业推广网站有哪些
  • 武进区城乡建设局网站企业网站的推广阶段
  • 做网站需要平台如何申请网站域名流程
  • 效果图制作合同范本北京关键词优化服务
  • 松原做公司网站哪里的网络推广培训好
  • 百度网页制作网站建设2023新闻大事件摘抄
  • 昆明网站建设c3salessem优化托管公司
  • 做网站用的到minitab么百度一下你知道
  • 免费自助制作永久网站seo销售是做什么的
  • 郑州正岩建设集团网站市场推广是做什么的
  • icp备案网站接入信息怎么写网站提交链接入口
  • 机械类产品网站做优化沧州网站seo
  • 做网站需要每年都缴费吗app推广工作是做什么的
  • 做暖暖欧美网站游戏推广员好做吗
  • 北京做网站公司哪家好windows优化大师是什么
  • 网站设计遵循的原则爱站网反链查询
  • 哪个软件做网站最简单怎样才能上百度
  • 专做美食的网站技术培训机构
  • 网站如何悬挂备案号百度官网下载安装
  • 千博企业网站如何自己开发网站
  • 长丰网站建设深圳做seo有哪些公司
  • 子商务网站建设的一般流程百度官方网站登录
  • 青岛做网站方案石家庄手机端seo
  • 网站开发流程图软文街官方网站
  • 如何做阿里详情页面链接到外部网站获客渠道有哪些
  • 编程c++网课哪家好福州百度seo代理
  • 电商网站开发计划书合肥网络优化推广公司