您的位置:首页 > 其它

Winform中的委托与事件 应用的一个小实例

2012-10-15 14:21 423 查看
首先定义一个继承EventArgs类的类,其中包涵自己要传递的数据,类中的属性都是用来传递数据的:

EventArgs

public class FormulaSetEvent:EventArgs
{
public string _name { set; get; }
public string _formula { set; get; }
public int _select { set; get; }
public FormulaSetEvent(string name, string formula,int select)
{
this._select = select;
this._name = name;
this._formula = formula;
}
}


然后定义委托类型,定义委托事件(写在要触发事件的窗体中):

//定义委托类型
public delegate void DialogEventHandler(object sender, FormulaSetEvent e);
//定义委托事件
public event DialogEventHandler ReturnDataEvent;


然后开始编辑触发事件:

//应用
private void button2_Click(object sender, EventArgs e)
{
if (ReturnDataEvent != null)
{
ReturnDataEvent(this,new FormulaSetEvent(this.comboBox1.Text,this.richTextBox1.Text,select));
}
}


再然后要在主窗体中注册事件:

private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.ReturnDataEvent += new Form2.DialogEventHandler(f2_Event);
form.ShowDialog();
}


上面的f2_Event为事件响应的函数:

void f2_Event(object sender,FormulaSetEvent e)
{
this.TextBox1.Text=e._name;
}


在此就可以获取Form2中的值,并且能在Form2不关闭的情况下修改主窗体的内容 属性;

有时在做“应用”这个按钮功能是会用到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: