Form2向Form1传值





        private Form1 form1;//定义一个类型为Form1类型的字段,用于存储传递过来的Form对象

        public void SetTextValue(object sender, EventArgs e)//sender 事件源,e包含事件数据的类的基类的对象

        {

            if (sender is Form1)

            {

                form1 = sender as Form1;

            }

            MyEventArgs me = (MyEventArgs)e;

            txtNum2.Text=me.Text;

        }

        public event EventHandler eh2;//定义一个系统事件类型的事件





        private void btnBack_Click(object sender, EventArgs e)

        {

            MyEventArgs me = new  MyEventArgs();

            me.Text = txtNum2.Text;





            eh2 += new EventHandler(form1.SetTextVaule);//注册事件

            if (eh2 != null)

            {

                eh2(this,me);//执行事件

            }

            this.Close();

        }

    }





[注]:

1 为什么要定义MyEventArgs?

要通过事件传值,需要定义事件,定义事件需要事件源,包含事件数据的类,而引用系统提供的事件时,系统事件里仅有

    // 摘要:

        //     表示没有事件数据的事件。

        public static readonly EventArgs Empty;





        // 摘要:

        //     初始化 System.EventArgs 类的新实例。

        public EventArgs();

两项,当需要通过事件传递额外的值则不能满足,此时需要自己定义事件类,而此时又容易报

------------------

"无法将类型“System.EventArgs”转换为“_02_事件窗体传值.MyEventArgs”

委托“System.EventHandler”有一些无效参数

参数 2: 无法从“_02_事件窗体传值.MyEventArgs”转换为“System.EventArgs”

------------------

的错误,所以此时为了解决如上问题,可让自定义事件类继承系统定义事件类.

public class MyEventArgs:EventArgs

    {

       public string Text { get; set; }

    }

winform中通过事件实现窗体传值思路【待修改】的更多相关文章

  1. Winform中如何实现父窗体传递数据到子窗体并刷新子窗体

    原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...

  2. Winform中利用委托实现窗体之间的传值

    点击打开按扭,打开传输值窗体 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public ...

  3. winform中使用委托进行窗体之间的传值

    一.传统的方式 创建一个公共数据资源类,用于存储窗体2的TextBox的值: public class ComValue { public static string Txtvalue { get; ...

  4. Winform中如何实现子窗体刷新父窗体

    原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...

  5. WinForm中的事件触发机制学习

    在一个Form窗体中拖个按钮,双击后系统自动生成代码: private void button1_Click(object sender, EventArgs e) { } 同时在窗体的Initial ...

  6. winform中的Datagridview控件与List同步修改

    Winform的datagridview是个很强大的控件,可用datatable, List等型的数据与之绑定显示. 可惜的是,绑定的LIst不能同步更新. 估计是为了改进List不能同步更新的问题, ...

  7. CS中委托与事件的使用-以Winform中跨窗体传值为例

    场景 委托(Delegate) 委托是对存有某个方法的引用的一种引用类型变量. 委托特别用于实现事件和回调方法. 声明委托 public delegate int MyDelegate (string ...

  8. Winform开发之窗体传值

    Winform的窗体之间的数据传递是开发的必备技术,下面介绍几种典型的传值方法 1.构造函数传值,但这种方法是单向的(推荐) 上代码,先传值 private void button2_Click(ob ...

  9. WinForm开发,窗体显示和窗体传值相关知识总结

    主窗体中代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void b ...

随机推荐

  1. oracle手动修改listener.ora和tnsnames.ora之后竟然无效

    oracle手动修改listener.ora和tnsnames.ora之后竟然无效 花式重启都没有生效,需要使用Net Configuration Assistant来进行刷一下,重新生成的监听还是一 ...

  2. unity游戏开发

    第1章 基础知识 11.1 Unity简介 11.2 跨平台与多工种协作 11.3 Unity版本 21.4 Unity内置资源或拓展资源 31.5 示例项目打包与发布 51.6 Unity服务 71 ...

  3. Oracle中没有 if exists(...)的解决方法

    http://blog.csdn.net/hollboy/article/details/7550171对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常 ...

  4. prop()方法和attr()方法以及区别

    prop()方法: prop() 方法设置或返回被选元素的属性和值. 当该方法用于返回属性值时,则返回第一个匹配元素的值. 当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对. 注意: ...

  5. Centos6.0使用第三方YUM源(EPEL,RPMForge,RPMFusion)

    yum是centos下很方便的rpm包管理工具,配置第三方软件库使你的软件库更加丰富.以下简单的讲下配置的步骤. 首先,需要安装yum-priorities插件: yum install yum-pr ...

  6. ORACLE经常使用系统查询

     1  查询系统全部对象 SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS FRO ...

  7. PowerBuilder -- 数据窗口

    获取数据窗口列数 ls_colnum= integer(this.Describe("DataWindow.Column.Count")) 获取数据窗口列名 ls_colName ...

  8. CentOS Python 安装MySQL-python

    一.安装mysql yum list | grep mysql >>yum install -y mysql-server mysql mysql-devel CentOS 7的yum源中 ...

  9. myql 5.6 安装

    环境: centos 6.5  192.168.9.28  4核4G 虚拟机 一. 安装编译源码所需要的工具和库 [root@localhost ~]# yum -y install gcc gcc- ...

  10. angularcli填坑系列(持续更新...)

    1.在xx.ts中引入css样式无效 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls ...