Window Form 父子窗体相互更新

匿名 (未验证) 提交于 2019-12-03 00:33:02

主窗体

public partial class Form1 : Form
{
public Form1()
{
//LoginForm dlg = new LoginForm();
//dlg.StartPosition = FormStartPosition.CenterParent;
//dlg.ShowDialog();
InitializeComponent();
//this.StartPosition = FormStartPosition.CenterScreen;
}

//父窗体定义委托和事件
public delegate void changetxt(string text);
public event changetxt changeStxt_event;
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(this);//传递窗体1指针
//子窗体订阅事件
frm.changeFtext_event += new Form2.changetext(frm_changetext_event);
frm.StartPosition = FormStartPosition.CenterScreen;
frm.Show(this);//窗体不会置于父窗体的外边
}

void frm_changetext_event(string text)
{
textBox1.Text = text;
}

private void button2_Click(object sender, EventArgs e)
{
changeStxt_event(textBox1.Text);
}
}

子窗体

public partial class Form2 : Form

{
public Form2(Form1 frm)
{
InitializeComponent();
//订阅事件
frm.changeStxt_event += new Form1.changetxt(frm_changeStxt_event);
}

//子窗体定义委托事件
public delegate void changetext(string text);
public event changetext changeFtext_event;
//更新方法
void frm_changeStxt_event(string text)
{
textBox1.Text = text;
}

private void button1_Click(object sender, EventArgs e)
{
changeFtext_event(textBox1.Text);
}
}

原文:https://www.cnblogs.com/hbgjh/p/9216626.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!