码迷,mamicode.com
首页 > 其他好文 > 详细

简单的委托实例

时间:2014-12-21 01:51:51      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

namespace 使用委托窗体传值

{
    public partial class Form1 : Form  // 窗体1
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            // 创建Form2实例f2
            Form2 f2 = new Form2();
            // 向PassValue事件订阅一个事件,该事件源会携带一个带textbox2的信息
            f2.PassValue+=new Form2.SetTextToLabelHandler(Form2_ButtonClicked);
            f2.Show();
        }
        private void Form2_ButtonClicked(object send, SetTextToLabelEventArgs e) {
            label1.Text = e.Text;
        }
    }  
}
 
namespace 使用委托窗体传值
{
    public partial class Form2 : Form // 窗体2
    {
        public Form2()
        {
            InitializeComponent();
        }
        // 声明传值委托
        public delegate void SetTextToLabelHandler(object sender, SetTextToLabelEventArgs e);
        // 声明一个传值委托类型的事件
        public event SetTextToLabelHandler PassValue;
 
        private void button1_Click(object sender, EventArgs e)
        {
            // 创建事件源类实例并传递textbox1的值过去
            SetTextToLabelEventArgs args = new SetTextToLabelEventArgs(textBox1.Text);
            PassValue(this, args); // 触发事件
            this.Dispose();
        }
    }
    public class SetTextToLabelEventArgs : System.EventArgs {
        public string Text { getset;}
        public SetTextToLabelEventArgs(string text) {
            this.Text= text;
        }
    }
}

简单的委托实例

标签:

原文地址:http://www.cnblogs.com/zxws1009/p/4176097.html

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