一篇将自定义事件(定义委托、定义事件、通过委托绑定事件触发函数、触发事件的函数、以及触
发事件函数的函数,行为事件触发前者)、System.EventArgs 事件数据类基类诠释的很不错的一篇文章。
1.定义委托
public delegate void LabelContextChangedHandler(object sender,
public delegate void LabelContextChangedHandler(object sender,
LabelContextChangedEventArgs e);
2.定义事件
public event LabelContextChangedHandler LabelContextChanged;
public event LabelContextChangedHandler LabelContextChanged;
3.通过委托绑定事件触发函数
protected void Page_Load(object sender, EventArgs e)
{
TestWebUserControl1.LabelContextChanged += new LabelContextChangedHandler
(TestWebUserControl_LabelContextChanged);
}
}
4.触发事件的函数
private void OnLabelContextChanged(object sender, LabelContextChangedEventArgs e)
{
if (LabelContextChanged != null)
{
LabelContextChanged(sender, e);
}
}
5.触发事件函数的函数
public void ChangeLabelContext(object sender, string value)
{
Label1.Text = value;
OnLabelContextChanged(sender, new LabelContextChangedEventArgs(value));
}
6.行为事件触发5
protected void Button2_Click(object sender, EventArgs e)
{
TestWebUserControl1.ChangeLabelContext(sender, "hi");
TestWebUserControl2.ChangeLabelContext(sender, "cnblogs");
}
protected void Button2_Click(object sender, EventArgs e)
{
TestWebUserControl1.ChangeLabelContext(sender, "hi");
TestWebUserControl2.ChangeLabelContext(sender, "cnblogs");
}
文章附件为cnblogs一博友的源码。
转载于:https://blog.51cto.com/vaxvax0000/392478