回 帖 发 新 帖 刷新版面

主题:请教:C#关于窗体间数据传递问题

请教:C#关于窗体间数据传递问题
    我想在第一个窗体中输入数据,通过一个事件将数据传递给第二个窗体,第二个窗体是由第三个窗体打开的。但是不行,而第三个窗体可以向第二个窗体传送数据。我试着用委派事件机制实现,也没成功。请高手指点。
源代码如下
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace mdi
{
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        Form2 myForm2=new Form2();
        Form3 myForm3=new Form3();
        private void button1_Click(object sender, System.EventArgs e)
        {
            myForm3.Show();
        }
    //将窗体1文本框数据复制到窗体2文本框
private void button3_Click(object sender, System.EventArgs e)
        {
            myForm2.textBox1.Text= textBox1.Text;
        }

    }
*******************************************************************************
    public class Form3 : System.Windows.Forms.Form
    {
        Form2 myForm2=new Form2();
        private void button1_Click(object sender, System.EventArgs e)
        {
            myForm2.Show();
        }
          //将窗体3文本框数据复制到窗体2文本框

        private void button2_Click(object sender, System.EventArgs e)
        {
            myForm2.textBox1.Text=textBox1.Text;
        }
    }
}

回复列表 (共1个回复)

沙发

方法一。
关键:在第三方窗体中创建一静态方法作为中转。


***************************************
class Form1源程序
**********************************************
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace mdi
{
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        static void Main() 
        {
            Application.Run(new Form1());
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            myForm3.Show();
        }

        private void button3_Click(object sender, System.EventArgs e)
        {
              str1=textBox1.Text;
            myForm3=new Form3();
            myForm3.change1(str1);
        }
    }
}

*******************************************************
class Form3源程序
****************************************************************
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace mdi
{
    /// <summary>
    /// Form3 的摘要说明。
    /// </summary>
    public class Form3 : System.Windows.Forms.Form
    {
        private void button1_Click(object sender, System.EventArgs e)
        {
            myForm2=new Form2();
            myForm2.Show();
        }

        public void button2_Click(object sender, System.EventArgs e)
        {
            myForm2.textBox1.Text=textBox1.Text;
        }

        public string  change1(string str1)//并不包含对“chang1”的定义
        {
            myForm2.textBox1.Text=str1;
            return(str1);
         }
    }
}


我来回复

您尚未登录,请登录后再回复。点此登录或注册