zoukankan      html  css  js  c++  java
  • winform中通过事件实现窗体传值思路【待修改】

    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; }
        }
  • 相关阅读:
    梯度下降的矩阵分解公式推导
    再谈矩阵分解在推荐系统中的应用
    浅谈矩阵分解在推荐系统中的应用
    tomcat局域网内发布html
    通过JavaScript动态生成html控件
    html 复选框checkbox
    HTML <frameset>不同frame之间传值
    OpenLayers 案例一
    ubuntu java开发环境jdk安装
    如何成为Python高手
  • 原文地址:https://www.cnblogs.com/dfyg-xiaoxiao/p/7213785.html
Copyright © 2011-2022 走看看