委托实现和事件实现
public partial class ParentForm : Form
{
public ParentForm()
{
InitializeComponent();
ChildForm childForm = new ChildForm();
//注册方法
SetTextDel += childForm.SetText;
EventChildForm eventChildForm = new EventChildForm();
//注册事件
TxtMsgChangeHandler += eventChildForm.ParentTxtMsgChangeHandler;
eventChildForm.Show();
childForm.Show();
}
//定义一个委托属性
private Action<string> SetTextDel { get; set; }
//定义一个textbox的text改变的事件
private event EventHandler TxtMsgChangeHandler;
private void btnSendMsg_Click(object sender, EventArgs e)
{
if(SetTextDel==null)
{
return;
}
//执行委托
SetTextDel(txtMsg.Text);
//触发事件
TxtMsgChangeHandler(this, new EventArgTxtChange() { Text = this.txtMsg.Text });
}
} public partial class ChildForm : Form
{
public ChildForm()
{
InitializeComponent();
}
public void SetText(string text)
{
txtMsg.Text = text;
}
}public partial class EventChildForm : Form
{
public EventChildForm()
{
InitializeComponent();
}
public void ParentTxtMsgChangeHandler(object sender, EventArgs e)
{
EventArgTxtChange eTxtChange = e as EventArgTxtChange;
txtMsg.Text = eTxtChange.Text;
}
}public class EventArgTxtChange:EventArgs
{
public string Text { get; set; }
}
本文介绍了一个使用C#实现的简单示例,通过两个窗体类演示了委托和事件的基本用法。父窗体注册子窗体的方法作为委托,并触发事件通知另一个窗体更新消息。
4684

被折叠的 条评论
为什么被折叠?



