新手初探C#委托2

要通过委托实现一个功能:不同窗体进行消息传递
思路:
1、首先创建两个窗体,功能简化,label,button,textbox,三个控件

在这里插入图片描述
在这里插入图片描述
B进行发送消息,A进行接受消息。

2、对按钮进行点击功能的添加,同时思考如何写委托
在这里插入图片描述
3、委托分为几步
第一步:委托的声明,如果还不确定有没有返回值,几个参数,先写一个大概的情况
dnimg.cn/d03c95f6910840b9bed4b2754513d062.png)
第二步:委托对应的方法:放到你想调用的那个对象里面(从B里调用A的方法,想把消息传给A,所以放在A里面)

在这里插入图片描述

第三步:定义委托变量:谁想使用委托,就在哪里定义委托变量(B想发消息给A,但是也不能强制找人家,所以B想使用委托,托关系找A)

在这里插入图片描述

第四步:关联委托变量。在创建对象的地方关联。
passMsg,它的类型就是委托类型。
在这里插入图片描述
第五步:使用委托变量

在这里插入图片描述

彩蛋:小西(B)找小潘(A),但是互不认识(也不允许直接联系),小西通过小婆(委托)找小潘。

窗体A代码:

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;
using 委托;

namespace 委托
{
    
    // 1、委托声明

    public delegate void PassMsgDelegate(string msg);
    public partial class A : Form
    {

        public A()
        {
            InitializeComponent();
            
        }

        private void button1_Click(object sender, EventArgs e)
        {

            B b = new B();
            //4、关联委托变量,如果这个写在ShowDialog下面就会报错,没有接收到方法,值为空
            //如果用的是show,那写在后面就不会报错
            b.passMsg = ReceiveMsg;
            b.ShowDialog();
          
        }
        //2、接受消息的方法
        public void ReceiveMsg(string s)
        {
            textBox1.Text+= s;
        }


    }
}

窗体A代码:

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 委托
{
    public partial class B : Form
    {
        //3、创建委托变量
        public PassMsgDelegate passMsg=null;

        public B()
        {

            InitializeComponent();

        }
         public void button1_Click(object sender, EventArgs e)
        {
            
            //5、使用委托变量传值
            passMsg(textBox1.Text.Trim());

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值