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


    用事件 实现窗体间的传值

    父窗体代码如下:

    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)
            {
    
            }
        }
    }
  • 相关阅读:
    课程总结
    每日总结66
    每日总结65
    每日总结64
    每日总结63
    每日总结62
    每日总结61
    每日总结60
    偶滴点NET复习
    内部异常SocketException由于目标计算机积极拒绝
  • 原文地址:https://www.cnblogs.com/xiaoyaohan/p/9682099.html
Copyright © 2020-2023  润新知