zoukankan      html  css  js  c++  java
  • C#中两个窗体间的数据传递

    winform 窗体编程

    在两个窗体间传递数据可分为两种:

    一:父窗体向子窗体传递。

    二:子窗体向父窗体传递。

    传递实现的机制:

    分别在两个窗体中创建公有属性的设置字段,分别供两个窗口调用。

    两种情况的区别:

    一:在父窗体向子窗体传递数据时,由于在父窗口中已经实例化出子窗口对象,可以直接调用子窗口的设置字段程序。

    代码示例:

    Step one:在父窗体中添加_senddata字段。

    public string _senddata
    {
       get{return data;}
    }

    Step tow:在子窗体中添加_recievedata字段

    public string _recievedata
    {
       set{this.message=value;}
    }

    Step three:在父窗体中创建子窗体,并将数据传递过去。

    private void button1_Click(Object sender,Eventargs e)
    {
       Form2 f=new Form2();
       f.Show();
       f._recievedata=this._senddata;
    }

    二:而在子窗口向父窗口传递数据时,在子窗口程序中并没有父窗口的实例化对象,所以不能直接调用父窗口的设置字段程序。

    解决办法:添加私有的父窗体对象,在子窗口中重载带有父窗体参数的构造函数,将参数引用传递给私有的父窗体对象。这样在子窗体中便有了父窗体实例对象的引用。

    代码示例:

    Step one: 在子窗体中重载构造函数。

    private Form1 f;//添加私有的父窗体的对象。
    
    public Form2(Form1 _f)
    {
       //.........初始化工作。
      f=_f;//将f引用为父窗体。
    }

    Step tow:在父窗体中新建子窗体对象时将自己作为参数传递给构造函数。

    private void button1_Click(Object sender,Eventargs e)
    {
       Form2 f=new Form2(this);//实例化子窗口时。
       f.Show();
    }

    Step three:在子窗体中以父窗体的引用进行数据传递。

    private void ButtoOne_Click(Object sender,EventArgs e)
    {
       //调用父窗体的引用。
       f._recievedata=this._senddata;
    
    }
  • 相关阅读:
    SDOI2008 Sandy的卡片
    BZOJ2555 Substring
    CTSC2012 熟悉的文章
    递增
    丢失的牛
    【模板】点分治
    陌上花开(三维偏序)
    Holes(河鼠入洞)
    弹飞河鼠
    树状数组1
  • 原文地址:https://www.cnblogs.com/csdnmc/p/3029460.html
Copyright © 2011-2022 走看看