您的位置:首页 > 其它

采用委托实现两窗口间通信互相通信

2016-02-15 22:47 239 查看
采用委托实现两窗口间通信互相通信

实现效果





主窗口
namespace 两窗口通信
{
//1、创建委托
public delegate void SendDelegate(string msg);
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Text = "小王:";
Form2 objFrm2 = new Form2();
//4、建立委托关联
//关联窗体1的委托
objSend += objFrm2.Display;
objSend += display;
//关联窗体2的委托
objFrm2.objSend += display;
//窗体2显示
objFrm2.Show();
}
//2、声明委托
private SendDelegate objSend;
private void btnSend_Click(object sender, EventArgs e)
{
//发送并显示信息
if (objSend != null) objSend(this.Text +this.txtMessage.Text);
this.txtMessage.Clear();
}
//3、创建委托的事件
private void display(string msg)
{
this.lbDispay.Items.Add(msg);
}
}
}
从窗口

namespace 两窗口通信
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
this.Text = "小李:";
objSend += Display;//关联窗体2的委托
}
//声明窗体2委托
public SendDelegate objSend;
//创建窗体2的委托事件
public  void Display(string msg)
{
this.lbDispay.Items.Add(msg);
}
//窗体2发送信息
private void btnSend_Click(object sender, EventArgs e)
{
if (objSend != null)
{
objSend(this.Text  + this.txtMessage.Text);
this.txtMessage.Clear();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: