赞
踩
最近学习委托的时候遇到一个比较有意思的功能,正常情况下子父窗体间通信比较困难,这时可以使用委托,来进行子父窗体间通信。
首先在父窗体上绘制一个textbox和一个buttom
然后创建子窗体:
选择窗体添加:
再添加一个textbox和buttom如下:
然后实现子窗体发送textbox里的内容给父窗体的textbox显示
public Form1() { InitializeComponent(); } public void ChangeTextVal(string TextVal) { this.textBox1.Text = TextVal; } private void button1_Click(object sender, EventArgs e) { Form2 SubForm = new Form2(); // 3.将ChangeTextVal加入到委托事件中 // 等效于: // SubForm.ChangeTextVal += ChangeTextVal; SubForm.ChangeTextVal += new DelegateChangeTextVal(ChangeTextVal); SubForm.ShowDialog(); }
// 1.定义委托类型(全局公有) public delegate void DelegateChangeTextVal(string TextVal); public partial class Form2 : Form { // 2.定义委托事件 public event DelegateChangeTextVal ChangeTextVal; public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ChangeMainFormText(this.textBox1.Text); } private void ChangeMainFormText(string TextVal) { // 4.调用委托事件函数 ChangeTextVal(TextVal); }
在子窗体中输入信息,点击发送,即可在父窗体的textbox里显示
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。