c#中两个form窗口传值用委托实现

c#中两个窗口传值用委托实现

(1)从数据结构来讲,委托和类一样是一种用户自定义类型
(2)从设计模式来讲,委托提供了方法的抽象
我在c#书上找到了委托的简介:委托类似于函数指针,他是一种引用类型,它引用的就是函数。

为了帮助理解,我在书上查了查委托的类型和赋值

  • 1 . 委托类型与委托变量的声明。
    修饰符 delegate 返回类型 委托名 (参数列表)
    public delegate void DelTest(string str1,string strl2);

    2.声明一个委托类型的变量与声明一个普通变量方式一样。(委托其实就是一种类型–一种引用类型)
    3.委托实例化 new 委托类型名(方法名)
    4.委托简写和赋值(语法糖)

先把结果放上 (form2通过委托调用form1的方法)在这里插入图片描述
form1的代码

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2(ShowText);

            f.Show();

            // this.textBox1.Text = Class1.name;
            // this.textBox1.Tex = Class1.age;
            void ShowText(string str1, string str2)
            {
                this.textBox1.Text =str1;
                this.textBox2.Text = str2;
            }
        }
    }```
  

form2的代码

 public partial class Form2 : Form
    {
        public delegate void DelTest(string str1,string strl2);//声明委托
        private DelTest _del;// 定义委托变量
        public Form2(DelTest del)
        {
            
            this._del = del;//委托变量指向form1的ShowText的函数
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this._del(textBox1.Text.Trim(), textBox2.Text.Trim());




        }
       
    }

参考来自这个博客

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值