C#将Form2文本框中的文本发送到Form1文本框

时间:2012-11-26 13:22:13

标签: winforms textbox c#

我需要一些帮助,我想将Form2.cs中的文本框中的文本设置为Form1.cs中的另一个文本框但是我一直收到此错误:

Error 2 An object reference is required for the non-static field, method, or property.

我在c#编码,我无法在互联网上找到它怎么做?

4 个答案:

答案 0 :(得分:0)

您必须向Form1提供Form2的实例。例如,您可以在构造函数中传递它,如:

public Form2(Form1 frm)

然后你可以调用这样的东西

this.TextBox1.Text = frm.TextBox1.Text

答案 1 :(得分:0)

我只根据你的错误代码写这个答案。

  1. 您尝试访问non-static方法而不使用belongs it类对象的任何实例。例如;这段代码会失败。
  2. class Program
    {       
       public static void Main()
       {
          WriteMethod();
       }
       public void WriteMethod()
       {
          Console.Writeline("Succes!");
       } 
    }
    

    但这段代码有效;

    class Program
    {
       public static void Main()
       {
          Program p = new Program();
          p.WriteMethod();
       }
       public void WriteMethod()
       {
          Console.Writeline("Succes!");
       } 
    }
    

    希望你明白这一点。

答案 2 :(得分:0)

你的情况太简单了,你可以做很多事情来交换类之间的数据

为什么不尝试在另一个静态类或单例静态类中保存数据...

答案 3 :(得分:0)

//this code worked for me
//in form2 put following code prevent form from opening multiple times  
public partial class Form2 : Form
    {
        public Form2()
        {
             InitializeComponent();
        }
        private static Form2 Instance;
        public static Form2 GetInstance()
            {
                if (Instance ==null || Instance.IsDisposed)
           {
                Instance = new Form2();
            }
            else
            {
                Instance.BringToFront();
            }
                 return Instance;
         }

 // in form1

 public partial class Form1 : Form
    {
        public Form1()
        {
             InitializeComponent();
        }


        private void Button2_Click(object sender, EventArgs e)
        {
            Form2 form2 = Form2.GetInstance();
            form2.textBox1.Text = textBox1.Text;
            form2.Show();
        }
    }