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下载

  • 相关阅读:
    Oracle 获取创建控制文件的脚本
    ESXi下误删磁盘分区
    Oracle 3DES加密示例
    Oracle job 执行多个存储过程
    解开紧箍咒
    国际关系之美国南海战略意图(转)
    GHOST系统锁定主页常用软件及解决方案
    cut命令详解
    grep命令详解
    awk命令详解
  • 原文地址:https://www.cnblogs.com/CnKker/p/2677158.html
Copyright © 2011-2022 走看看