C#中用事件实现窗体间的传值

it2022-05-05  102

用事件 实现窗体间的传值

父窗体代码如下:

 

namespace 窗体间传值_用事件来做 { public partial class Parentfrm : Form { //定义消息发布的事件 public event EventHandler AfterMsgEvent; public Parentfrm() { InitializeComponent(); } private void Parentfrm_Load(object sender, EventArgs e) { Childfrm frm = new 窗体间传值_用事件来做.Childfrm(); //子窗体弹出来之前关注父窗体的变化 事件方式 AfterMsgEvent += frm.AfterParentFrmTextChange;//在childfrm中生成方法 frm.Show(); } private void btnSend_Click(object sender, EventArgs e) { //触发事件 AfterMsgEvent(this, new TextBoxMsgChangeEventArg() { Text = this.txtMsg.Text });//属性触发器 } } } View Code

用于存储文本的属性类代码如下:

namespace 窗体间传值_用事件来做 { public class TextBoxMsgChangeEventArg:EventArgs//写一个类继承于EventArgs,这样在父窗体中点击按钮时就能调用 { public string Text { get; set; }//写一个属性来存储文本 } }

子窗体代码如下:

namespace 窗体间传值_用事件来做 { public partial class Childfrm : Form { public void SetText(string txt) { txtMsg.Text = txt; } public Childfrm() { InitializeComponent(); } public void AfterParentFrmTextChange(object sender, EventArgs e) { //拿到父窗体传来的文本 TextBoxMsgChangeEventArg arg = e as TextBoxMsgChangeEventArg; this.SetText(arg.Text);//调用方法,将类属性存储的文本传给他 } private void Childfrm_Load(object sender, EventArgs e) { } } }

 

转载于:https://www.cnblogs.com/xiaoyaohan/p/9682099.html

相关资源:各显卡算力对照表!

最新回复(0)