码迷,mamicode.com
首页 > Windows程序 > 详细

使用委托进行窗体传值

时间:2017-11-14 14:44:19      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:接收   传递   ini   div   generic   draw   new   .sh   构造   

两个窗口,第一个窗口中有按钮和label,点击按钮用来打开窗口2;

在窗口2中有textbox和按钮,点击按钮,将textbox中的值传递给窗口1,并在窗口1的label上显示。

分析:在窗口1有label显示的方法,但是在窗口2中有需要显示的值。这时需要使用委托,将窗体1的显示方法传递到窗体2中。传递方法可通过委托作为Form2构造函数的形参

Form1.cs

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 Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 fm2 = new Form2(showMsg);
            fm2.Show();
        }

        //需要将这个方法传递到窗体2中
        void showMsg(string str)
        {
            label1.Text = str;
        }
    }
}

 

From2.cs

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 窗体传值
{
    //声明委托,用于窗体传值
    //与void showMsg(string str)的标签一致
    public delegate void DeleSend(string str);
    public partial class Form2 : Form
    {
        //用来接收收到的函数
        public DeleSend _dele;
        public Form2(DeleSend dele)
        {
            //这样将Form1的方法传递到了Form2中
            //Form2可以调用From1的方法
            this._dele = dele;
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //在Form2中调用Form1的方法
            _dele(textBox1.Text);
        }
    }
}

 

使用委托进行窗体传值

标签:接收   传递   ini   div   generic   draw   new   .sh   构造   

原文地址:http://www.cnblogs.com/my-cat/p/7831296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!