C# 事件的使用 在窗体2种触发窗体1 使得窗体1执行某个方法

第一步:在窗体2中

定义委托

定义事件

public delegate void Change(string newSendEmails);//定义委托 改委托要和UI中的现实方法一样
        public event Change myChangeevent;//定义事件

在某个方法或者事件里面

执行事件

myChangeevent(sb.ToString());//执行事件

第二步:在窗体1中

定义一个和窗体2委托对应形参和返回值的方法(事件执行方法)

        //事件执行方法
        public void SetSendEmail(string newEmails)
        {
            this.textBoxSendEmailList.Text = newEmails;
        }

在load中 注册事件

        private void buttonSendEmailSum_Click(object sender, EventArgs e)
        {
            FormSendEmailSift fromSendEmailSift = new FormSendEmailSift(this.QqEntityList);
            fromSendEmailSift.myChangeevent += new FormSendEmailSift.Change(SetSendEmail);//注册事件
            fromSendEmailSift.Show();
        }

这样 在窗体2中 点击某个按钮或者执行方法就会使得窗体1执行某个方法 这个方法就可以去执行你想要的代码了

达到在不同窗体直接传值

 

posted @ 2012-12-13 14:04  麦田HH  阅读(1610)  评论(0编辑  收藏  举报