zoukankan      html  css  js  c++  java
  • 如何用委托与事件实现winfrom窗体之间值传递

    如何用委托与事件实现winfrom窗体之间值传递

     OutDataEventArgs.cs

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace PassFormDemo
    {
        public class OutDataEventArgs : EventArgs
        { 
            /// <summary>
            
    /// 构造函数
            
    /// </summary>
            
    /// <param name="refRecv"></param>
            public OutDataEventArgs(string refRecv)
            {
                this.Recv = refRecv;
              
            }
     
            /// <summary>
            
    /// 接受
            
    /// </summary>
            public string Recv { getset; }
            
        } 

    发送窗体:frmSend.cs

    using System; 
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace PassFormDemo
    {
        public partial class frmSend : Form
        {
            public frmSend()
            {
                InitializeComponent();
            }

            /// <summary>
            
    /// 委托输出文本框
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            public delegate void SendTextBoxHandler(object sender, OutDataEventArgs e);

            /// <summary>
            
    /// 事件
            
    /// </summary>
            public event SendTextBoxHandler OutDataForm;

            /// <summary>
            
    /// 传递值
            
    /// </summary>
            
    /// <param name="Send"></param>
            
    /// <param name="Recv"></param>
            public void OutText(string Recv)
            {
                if (OutDataForm != null)
                {
                    OutDataEventArgs args = new OutDataEventArgs(Recv);
                    OutDataForm(this, args);
                }
            }

            private void btnSend_Click(object sender, EventArgs e)
            {
                OutText(txtSend.Text);
            }

             
        }
    }

    接受数据窗体:RecvFrm.cs 

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace PassFormDemo
    {
        public partial class RecvFrm : Form
        {
            public RecvFrm()
            {
                InitializeComponent();
            }

            private frmSend frmsender = new frmSend();
            
            private void RecvFrm_Load(object sender, EventArgs e)
            {
                frmsender.Show(); //展示窗体
                
                 
    //注册方法
                frmsender.OutDataForm += new frmSend.SendTextBoxHandler((sender1, args) =>
                {
                    txtRecv.Text += args.Recv + "\r\n";
                });

               
            }
        }
    }

    源代码下载: 

     PassFormDemo.rar下载

  • 相关阅读:
    点击图片显示原图
    SQL判断语句
    窗口淡入淡出效果
    判断两段时间之间的时间差
    软件行业发展趋势
    VSS客户端不能访问问题“unable to open user login file\\服务器项目管理目录\data\logedin\用户名.log ”
    鑫哥儿子顺利降生了!
    面向对象原则之单一职责原则实现
    PHP编码,乱码问题
    泛型中的default(T)
  • 原文地址:https://www.cnblogs.com/CnKker/p/2677158.html
Copyright © 2011-2022 走看看