-2

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

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

我正在用 c# 编码,但我在互联网上的任何地方都找不到它怎么做?

4

4 回答 4

0

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

public Form2(Form1 frm)

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

this.TextBox1.Text = frm.TextBox1.Text
于 2012-11-26T13:36:58.177 回答
0

我仅根据您的错误代码编写此答案。

  1. 您尝试在non-static不使用属于它的类对象的任何实例的情况下访问方法。例如; 此代码将失败。
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!");
   } 
}

希望你明白重点。

于 2012-11-26T13:39:02.193 回答
0

好吧,您的情况太简单了,您可以做太多事情以在类之间交换数据

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

于 2012-11-26T13:39:32.883 回答
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();
        }
    }
于 2020-05-17T08:27:46.903 回答